(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 470633, 13305]*) (*NotebookOutlinePosition[ 536184, 15284]*) (* CellTagsIndexPosition[ 533758, 15222]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Last Slide"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["\<\ Automated Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm\ \>", "Title"], Cell["\<\ Bruno Buchberger Research Institute for Symbolic Computation Johannes Kepler University, Linz, Austria Talk at Workshop \"Formal Gr\[ODoubleDot]bner Bases Theory\" RICAM - RISC, Linz, Austria March 6, 2006\ \>", "Subtitle"], Cell["\<\ \ \>", "Subsubtitle"], Cell[TextData[{ StyleBox["Copyright Note: ", FontWeight->"Bold"], "Copyright Bruno Buchberger 2006\nThis file may be copied and stored in \ data bases under the following conditions:\n\n- The file is kept unchanged \ (including this copyright note).\n- A message is sent to \ Bruno.Buchberger@jku.at.\n- If you use material contained in this file, cite \ it appropriately referring to the above talk and workshop.\n" }], "Text", FontColor->RGBColor[1, 0, 0]] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Objectives", "Section"], Cell["Demonstrate that", "Text"], Cell["automated synthesis of non-trivial algorithms is possible, ", "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{55.25, Inherited}, {Inherited, Inherited}}], Cell["\<\ main idea (S-polynomials) of algorithmic Gr\[ODoubleDot]bner bases theory can \ be \"invented\" automatically. \ \>", "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{55.25, Inherited}, {Inherited, Inherited}}], Cell["\<\ The algorithm synthesis method described here can be implemented in any \ reasoning system that provides:\ \>", "Text"], Cell["\<\ access to the proof objects even in the case of failing proofs,\ \>", "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{55.25, Inherited}, {Inherited, Inherited}}], Cell["\<\ a \"natural\" proof style (temporary assumptions and temporary goals).\ \>", "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{55.25, Inherited}, {Inherited, Inherited}}] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["An \"Algorithm\" for Algorithm Synthesis", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell["Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm ", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell["Conclusion", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["An \"Algorithm\" for Algorithm Synthesis", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell["Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm ", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell["Conclusion", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The Algorithm Invention (\"Synthesis\") Problem", "Section"], Cell["\<\ Given a problem specification P (in predicate logic), find an algorithm A \ such that\ \>", "Text"], Cell[BoxData[ \(\[ForAll] \+x\(\( P[x, A[x]]\)\(.\)\)\)], "Input"], Cell["Examples of specifications P:", "Text"], Cell[BoxData[{ \(P[x, y]\ \[DoubleLeftRightArrow] \ is\[Dash]greater[x, y]\), "\n", \(P[x, y]\ \[DoubleLeftRightArrow] \ is\[Dash]sorted\[Dash]version[x, y]\), "\n", \(P[x, y]\ \[DoubleLeftRightArrow] \ has\[Dash]derivative[x, y]\), "\n", \(P[x, y]\ \[DoubleLeftRightArrow] \ are\[Dash]factors\[Dash]of[x, y]\), "\n", \(P[x, y]\ \[DoubleLeftRightArrow] \ is\[Dash]Gr\[ODoubleDot]bner\[Dash]basis[x, y]\), "\[IndentingNewLine]", \(\(\(...\)\(.\)\)\)}], "Input"], Cell["A general algorithm S for \"all\" P cannot exist but ...", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Literature", "Section"], Cell["\<\ There is a rich literature on algorithm synthesis methods, see survey\ \>", "Text"], Cell["\<\ [Basin et al. 2004] D. Basin, Y. Deville, P. Flener, A. Hamfelt, J. F. \ Nilsson. Synthesis of Programs in Computational Logic. In: M. Bruynooghe, K. \ K. Lau (eds.), Program Development in Computational Logic, Lecture Notes in \ Computer Science, Vol. 3049, Springer, 2004, pp. 30-65.\ \>", "Text"], Cell["\<\ Our method is in the class of \"scheme-based\" methods. Closest (but \ essentially different):\ \>", "Text"], Cell[TextData[{ "[Lau et al. 1999] K. K. Lau, M. Ornaghi, S. T\[ADoubleDot]rnlund. \ Steadfast logic programs. Journal of Logic Programming, 38/3, 1999, pp. \ 259-294. (", StyleBox["Synthesis from successful proofs", FontSlant->"Italic"], ".)" }], "Text", CellMargins->{{32.625, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "Work in the Group of A. Bundy, Critics. (", StyleBox["Synthesis of the appropriate induction scheme.", FontSlant->"Italic"], ")" }], "Text", CellMargins->{{32.625, Inherited}, {Inherited, Inherited}}] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["\<\ The \"Lazy Thinking\" Method for Algorithm Synthesis (BB 2001): Intuition\ \>", "Section"], Cell["\<\ \"Lazy Thinking\" Method for Algorithm Synthesis = My Advice to \"Students\" \ (= \"Computers\") How to Invent Algorithms\ \>", "Text"], Cell["Given: A problem P.", "Text"], Cell["Find: An algorithm A for P.", "Text"], Cell["\<\ Completely understand the problem. (\"Specification\" of the problem.)\ \>", "SmallText", CellDingbat->"\[ClubSuit]", CellMargins->{{64, Inherited}, {Inherited, Inherited}}], Cell["Learn how to prove.", "SmallText", CellDingbat->"\[ClubSuit]", CellMargins->{{64, Inherited}, {Inherited, Inherited}}], Cell["\<\ Collect (prove) \"complete\" knowledge on the auxiliary notion appearing in \ the problem. \ \>", "SmallText", CellDingbat->"\[ClubSuit]", CellMargins->{{64, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "Consider known fundamental ideas of how to structure algorithms in terms \ of subalgorithms (\"", StyleBox["algorithm schemes", FontColor->RGBColor[0, 0, 1]], "\"). \nTry one scheme A after the other." }], "Text", CellDingbat->"\[ClubSuit]", CellMargins->{{64, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "Try to prove that A solves P: From the ", StyleBox["failing proof ", FontColor->RGBColor[0, 0, 1]], "construct specifications of the subalgorithms that make the proof \ successful." }], "Text", CellDingbat->"\[ClubSuit]", CellMargins->{{64, Inherited}, {Inherited, Inherited}}] }, Open ]], Cell[CellGroupData[{ Cell["The \"Lazy Thinking\" Method for Algorithm Synthesis: Sketch", "Section"], Cell["\<\ Given a problem specification P\ \>", "Text"], Cell[TextData[{ "consider various \"", StyleBox["algorithm schemes", FontColor->RGBColor[0, 0, 1]], "\" for A, e.g. ", StyleBox[" ", FontWeight->"Bold"], Cell[BoxData[{ RowBox[{\(A[\[LeftAngleBracket]\[RightAngleBracket]]\), "=", StyleBox["c", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]]}], "\n", RowBox[{\(\[ForAll] \+x A[\[LeftAngleBracket]x\[RightAngleBracket]]\), "=", RowBox[{ StyleBox["s", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(\[LeftAngleBracket]x\[RightAngleBracket]\), "]"}]}], "\n", RowBox[{\(\[ForAll] \+\(x, y\&_\)\), RowBox[{ RowBox[{"(", RowBox[{\(A[\[LeftAngleBracket]x, y, z\&_\[RightAngleBracket]]\), "=", RowBox[{ StyleBox["i", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(x, y, A[\[LeftAngleBracket]y, z\&_\[RightAngleBracket]]\), "]"}]}], ")"}]}]}]}], FontWeight->"Bold"] }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{115.5, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "and try to ", StyleBox["prove ", FontColor->RGBColor[0, 0, 1]], StyleBox["(automatically)", FontColor->RGBColor[1, 0, 0]], StyleBox[" ", FontWeight->"Bold"], Cell[BoxData[ \(\[ForAll] \+x\(\( P[x, A[x]]\)\(.\)\)\)], FontWeight->"Bold"] }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{115.5, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "This proof will normally ", StyleBox["fail", FontColor->RGBColor[1, 0, 0]], " because nothing is known on the unspecified sub-algorithms c, s, i, ... \ in the algorithm scheme." }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{115.5, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "From the temporary assumptions and goals in the failing proof situation ", StyleBox["(automatically)", FontColor->RGBColor[1, 0, 0]], StyleBox[" generate such specifications for the unspecified sub-algorithms", FontColor->RGBColor[0, 0, 1]], " c, s, i, ... that make the proof successful." }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{115.5, Inherited}, {Inherited, Inherited}}], Cell["\<\ Now, apply the method recursively to the auxiliary functions.\ \>", "Text"], Cell["\<\ This synthesis method reduces the problem of finding an algorithm that \ satisfies the specification to finding algorithms for (automatically \ generated) other specifications (that are hopefully easier to satisfy or for \ which algorithms are already known). \ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Example: Synthesis of Merge-Sort [BB et al. 2003]", "Section"], Cell[TextData[{ StyleBox["Problem", FontColor->RGBColor[0, 0, 1]], ": Synthesize \"sorted\" such that " }], "Text"], Cell[BoxData[ \(\[ForAll] \+x\(\( is\[Dash]sorted\[Dash]version[x, sorted[x]]\)\(.\)\)\)], "Input"], Cell["(\"Correctness Theorem\")", "Text"], Cell[TextData[StyleBox["Knowledge on Problem:", FontColor->RGBColor[0, 0, 1]]], "Text"], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(x, y\)\), RowBox[{"(", RowBox[{\(is\[Dash]sorted\[Dash]version[x, y]\), "\[DoubleLeftRightArrow]", GridBox[{ {\(is\[Dash]sorted[y]\)}, {\(is\[Dash]permuted\[Dash]version[x, y]\)} }, ColumnAlignments->{Left}]}], ")"}]}]], "Input"], Cell[BoxData[ \(is\[Dash]sorted[\[LeftAngleBracket]\[RightAngleBracket]]\)], "Input"], Cell[BoxData[ \(\[ForAll] \+x is\[Dash]sorted[\[LeftAngleBracket]x\[RightAngleBracket]]\)], "Input"], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(x, y, z\&_\)\), RowBox[{"(", RowBox[{\(is\[Dash]sorted[\[LeftAngleBracket]x, y, z\&_\[RightAngleBracket]]\), "\[DoubleLeftRightArrow]", GridBox[{ {\(x \[GreaterEqual] y\)}, {\(is\[Dash]sorted[\[LeftAngleBracket]y, z\&_\[RightAngleBracket]]\)} }, ColumnAlignments->{Left}]}], ")"}]}]], "Input"], Cell["etc.", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["An Algorithm Scheme: Divide and Conquer", "Section"], Cell[BoxData[ RowBox[{\(\[ForAll] \+x\), RowBox[{"(", RowBox[{\(A[x]\), "=", RowBox[{"{", GridBox[{ { RowBox[{ StyleBox["s", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}], "\[DoubleLeftArrow]", \(is\[Dash]trivial\[Dash]tuple[x]\)}, { RowBox[{ StyleBox["m", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", RowBox[{ RowBox[{"A", "[", RowBox[{ StyleBox["l", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}], "]"}], ",", RowBox[{"A", "[", RowBox[{ StyleBox["r", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}], "]"}]}], "]"}], "\[DoubleLeftArrow]", "otherwise"} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]}], ")"}]}]], "Input"], Cell[TextData[{ StyleBox["s, m, l, r ", FontColor->RGBColor[1, 0, 0]], " are unknowns. " }], "Text"], Cell["\<\ We Now Start Proving the Correctness Theorem and Analyze the Failing Proof: \ see notebooks with failing proofs.\ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["\<\ Automated Invention of Sufficient Specifications for the Subalgorithms\ \>", "Section"], Cell[TextData[{ "A simple (but amazingly powerful) ", StyleBox["rule ", FontColor->RGBColor[0, 0, 1]], "(", " ", StyleBox["m", FontColor->RGBColor[1, 0, 0]], " ... an unknown subalgorithm ):\n" }], "Text"], Cell[TextData[{ "Collect temporary assumptions T[ x0, ... ", StyleBox["A", FontColor->RGBColor[1, 0, 0]], " [ ], ... ]\nand temporary goals G[ x0, ...", StyleBox["m ", FontColor->RGBColor[1, 0, 0]], "[ ", StyleBox["A", FontColor->RGBColor[1, 0, 0]], " [ ] ]", StyleBox[" ", FontColor->RGBColor[1, 0, 0]], " ]" }], "Text", CellMargins->{{128.625, Inherited}, {Inherited, Inherited}}], Cell["and produces specification", "Text", CellMargins->{{128.625, Inherited}, {Inherited, Inherited}}], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(X, \ ... , \ Y, \ ... \)\), RowBox[{" ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"T", "[", RowBox[{"X", ",", RowBox[{"...", StyleBox["Y", FontSize->16, FontColor->RGBColor[0, 0, 1]]}], ",", "..."}], "]"}], " ", "\[DoubleLongRightArrow]", " ", RowBox[{"G", "[", RowBox[{"Y", ",", RowBox[{"...", RowBox[{ StyleBox["m", FontColor->RGBColor[1, 0, 0]], StyleBox[" ", FontColor->RGBColor[1, 0, 0]], "[", StyleBox["Y", FontSize->16, FontColor->RGBColor[0, 0, 1]], "]"}]}]}], StyleBox[" ", FontColor->RGBColor[1, 0, 0]], "]"}]}], " ", ")"}], "."}]}]}]], "Input", CellMargins->{{128.625, Inherited}, {Inherited, Inherited}}], Cell["Details: see papers [BB 2003] and example.", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The Result of Applying Lazy Thinking in the Sorting Example", "Section"], Cell[TextData[{ "Lazy Thinking, ", StyleBox["automatically", FontColor->RGBColor[0, 0, 1]], " (in approx. 2 minutes on a laptop using the ", StyleBox["Theorema", FontSlant->"Italic"], " system), finds the following specifications for the sub-algorithms that \ provenly guarantee the correctness of the above algorithm (scheme):" }], "Text"], Cell[BoxData[ RowBox[{\(\[ForAll] \+x\), RowBox[{ RowBox[{"(", RowBox[{ RowBox[{\(is\[Dash]trivial\[Dash]tuple[x]\), "\[Implies]", RowBox[{ StyleBox["s", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}]}], "=", "x"}], ")"}]}]}]], "Input"], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(y, z\)\), RowBox[{"(", RowBox[{GridBox[{ {\(is\[Dash]sorted[y]\)}, {\(is\[Dash]sorted[z]\)} }, ColumnAlignments->{Left}], " ", "\[Implies]", GridBox[{ { RowBox[{"is\[Dash]sorted", "[", RowBox[{ StyleBox["m", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(y, z\), "]"}], "]"}]}, { RowBox[{ RowBox[{ StyleBox["m", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(y, z\), "]"}], " ", "\[TildeTilde]", " ", \((y \[CupCap] z)\)}]} }, ColumnAlignments->{Left}]}], " ", ")"}]}]], "Input"], Cell[BoxData[ RowBox[{\(\[ForAll] \+x\), RowBox[{"(", RowBox[{ RowBox[{ StyleBox["l", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}], "\[CupCap]", RowBox[{ StyleBox["r", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", "x", "]"}], " ", "\[TildeTilde]", " ", "x"}], ")"}]}]], "Input"], Cell["\<\ Note: the specifications generated are not only sufficient but natural !\ \>", "Text"], Cell["\<\ The four proof notebooks generated automatically by Theorema that develop \ these specifications successively, are given in the appendix.\ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["What Do We Have Now?", "Section"], Cell[TextData[{ StyleBox["Case A: ", FontWeight->"Bold"], "We find algorithms ", StyleBox["S, M, L, R ", FontColor->RGBColor[1, 0, 0]], "in our knowledge base for which the properties specified above for ", StyleBox["s, m, l, r", FontColor->RGBColor[1, 0, 0]], " are already contained in the knowledge base or can be derived (proved) \ from the knowledge base.\nIn this case, we are done, i.e. we have synthesized \ a sorting algorithm." }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{62.5, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ StyleBox["Case B:", FontWeight->"Bold"], " We do not find such algorithms ", StyleBox["S, M, L, R ", FontColor->RGBColor[1, 0, 0]], " in our knowledge base.\nIn this case, we apply Lazy Thinking again in \ order to synthesize appropriate ", StyleBox["s, m, l, r ", FontColor->RGBColor[1, 0, 0]] }], "Text", CellDingbat->"\[EmptySmallCircle]", CellMargins->{{62.5, Inherited}, {Inherited, Inherited}}], Cell["\<\ until we arrive at sub-sub-...-algorithms in our knowledge base (e.g. the \ basic operations of tuple theory like append, prepend etc.)\ \>", "Text", CellDingbat->None, CellMargins->{{94, Inherited}, {Inherited, Inherited}}], Cell["\<\ Case B can be avoided, if we proceed systematically bottom-up (\"complete \ theory exploration\" in layers).\ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", "LastSlide"]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar"], Cell[CellGroupData[{ Cell["Example: Synthesis of Insertion-Sort", "Section"], Cell["Synthesize A such that ", "Text"], Cell[BoxData[ \(\[ForAll] \+x\(\( is\[Dash]sorted\[Dash]version[x, A[x]]\)\(.\)\)\)], "Input"], Cell["Algorithm Scheme: \"simple recursion\"", "Text"], Cell[BoxData[{ RowBox[{\(A[\[LeftAngleBracket]\[RightAngleBracket]]\), "=", StyleBox["c", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]]}], "\[IndentingNewLine]", RowBox[{\(\[ForAll] \+x A[\[LeftAngleBracket]x\[RightAngleBracket]]\), "=", RowBox[{ StyleBox["s", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(\[LeftAngleBracket]x\[RightAngleBracket]\), "]"}]}], "\[IndentingNewLine]", RowBox[{\(\[ForAll] \+\(x, y\&_\)\), RowBox[{"(", RowBox[{\(A[\[LeftAngleBracket]x, y\&_\[RightAngleBracket]]\), "=", RowBox[{ StyleBox["i", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(x, A[\[LeftAngleBracket]y\&_\[RightAngleBracket]]\), "]"}]}], ")"}]}]}], "Input"], Cell[TextData[{ "Lazy Thinking, ", StyleBox["automatically", FontColor->RGBColor[0, 0, 1]], " (in approx. 2 minutes on a laptop using the ", StyleBox["Theorema", FontSlant->"Italic"], " system), finds the following specifications for the auxiliary functions" }], "Text"], Cell[BoxData[{ RowBox[{ StyleBox["c", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], StyleBox["=", FontFamily->"Eras Bold ITC", FontColor->GrayLevel[0]], StyleBox[\(\[LeftAngleBracket]\[RightAngleBracket]\), FontFamily->"Eras Bold ITC", FontColor->GrayLevel[0]]}], "\[IndentingNewLine]", RowBox[{\(\[ForAll] \+x\), RowBox[{"(", RowBox[{ RowBox[{ StyleBox["s", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(\[LeftAngleBracket]x\[RightAngleBracket]\), "]"}], "=", \(\[LeftAngleBracket]x\[RightAngleBracket]\)}], ")"}]}], "\[IndentingNewLine]", RowBox[{\(\[ForAll] \+\(x, y\&_\)\), RowBox[{"(", RowBox[{\(is\[Dash]sorted[\[LeftAngleBracket]y\&_\[RightAngleBracket]]\ \), " ", "\[Implies]", GridBox[{ { RowBox[{"is\[Dash]sorted", "[", RowBox[{ StyleBox["i", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(x, \[LeftAngleBracket]y\&_\[RightAngleBracket]\), "]"}], "]"}]}, { RowBox[{ RowBox[{ StyleBox["i", FontFamily->"Eras Bold ITC", FontColor->RGBColor[1, 0, 0]], "[", \(\[LeftAngleBracket]x, y\&_\[RightAngleBracket]\), "]"}], " ", "\[TildeTilde]", " ", \((x\[Cup]\[LeftAngleBracket]y\&_\[RightAngleBracket])\ \)}]} }, ColumnAlignments->{Left}]}], " ", ")"}]}]}], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["How Far Can We Go With the Method ?", "Section"], Cell[TextData[{ "\nCan we automatically synthesize algorithms for ", StyleBox["non-trivial problems", FontColor->RGBColor[0, 0, 1]], "? What is \"non-trivial\"?" }], "Text"], Cell["\<\ Example of a non-trivial problem: construction of Gr\[ODoubleDot]bner bases. \ \ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The Problem of Constructing Gr\[ODoubleDot]bner Bases is Non-trivial ", \ "Section"], Cell[TextData[{ StyleBox["Dozens of fundamental problems", FontColor->RGBColor[0, 0, 1]], " in algebraic geometry, invariant theory, optimization, graph theory, \ coding theory, cryptography, statistics, symbolic summation, symbolic \ solution of differential equations, ... ", StyleBox["can be reduced ", FontColor->RGBColor[0, 0, 1]], "to the construction of Gr\[ODoubleDot]bner bases. (Approx. 1000 papers on \ the application of the Gr\[ODoubleDot]bner bases method, see B. Buchberger, \ A. Zapletal, Papers Data Base on Gr\[ODoubleDot]bner Bases Theory, 2006, \ www.ricam.oeaw.ac.at/Groebner-Bases-Bibliography/index.php. )" }], "Text"], Cell[TextData[{ "Some of these problems were ", StyleBox["open for decades", FontColor->RGBColor[0, 0, 1]], ". " }], "Text"], Cell[TextData[{ StyleBox["Main algorithmic idea ", FontColor->RGBColor[0, 0, 1]], "of Gr\[ODoubleDot]bner bases theory: The \"S-polynomials\" together with \ the S-polynomial theorem." }], "Text"], Cell["[ Buchberger 1965] and [ Buchberger 1970].", "Text", CellMargins->{{44, Inherited}, {Inherited, Inherited}}], Cell[TextData[{ "Hence, question: Can Lazy Thinking ", StyleBox["automatically invent the ", FontColor->RGBColor[0, 0, 1]], StyleBox["notion", FontColor->RGBColor[1, 0, 0]], StyleBox[" of S-polynomial", FontColor->RGBColor[0, 0, 1]], " and automatically deliver the ", StyleBox["algorithm", FontColor->RGBColor[1, 0, 0]], " based on it together with its correctness ", StyleBox["proof", FontColor->RGBColor[1, 0, 0]], "?" }], "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The S-Polynomials", "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"S\[Dash]polynomial", "[", RowBox[{ RowBox[{ StyleBox[\(x\ y\), FontColor->RGBColor[1, 0, 0]], StyleBox["-", FontColor->GrayLevel[0]], \(2 y\ z\), " ", "-", " ", "z", "-", "1"}], ",", RowBox[{\(y\^2\), StyleBox["-", FontColor->RGBColor[1, 0, 0]], StyleBox[\(x\^2\ z\), FontColor->RGBColor[1, 0, 0]], " ", "+", " ", \(x\ z\), "+", "2"}]}], "]"}], "=", "\[IndentingNewLine]", RowBox[{ RowBox[{"x", " ", "z", RowBox[{"(", RowBox[{\(x\ y\), StyleBox["-", FontColor->GrayLevel[0]], \(2 y\ z\), " ", "-", " ", "z", "-", "1"}], ")"}]}], "+", \(y \((y\^2 - x\^2\ z\ + \ x\ z + 2)\)\)}]}]], "Input"], Cell[BoxData[ \(y\ \((2 + y\^2 + x\ z - x\^2\ z)\) + x\ z\ \((\(-1\) + x\ y - z - 2\ y\ z)\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"x", " ", "z", RowBox[{"(", RowBox[{\(x\ y\), StyleBox["-", FontColor->GrayLevel[0]], \(2 y\ z\), " ", "-", " ", "z", "-", "1"}], ")"}]}], "+", \(y \((y\^2 - x\^2\ z\ + \ x\ z + 2)\)\)}], "//", "Expand"}]], "Input"], Cell[BoxData[ \(2\ y + y\^3 - x\ z + x\ y\ z - x\ z\^2 - 2\ x\ y\ z\^2\)], "Output"] }, Open ]], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{ StyleBox["S\[Dash]polynomial", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}], "=", " ", "\[IndentingNewLine]", \(form\ the\)}], " ", "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ StyleBox["least\[Dash]common\[Dash]multiple", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", RowBox[{ RowBox[{ StyleBox["leading\[Dash]power\[Dash]product", FontColor->RGBColor[0, 0, 1]], "[", "g1", "]"}], ",", RowBox[{ StyleBox["leading\[Dash]power\[Dash]product", FontColor->RGBColor[0, 0, 1]], "[", "g2", "]"}]}], "]"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{" ", \(and\ then\ ... \)}]}], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["Algorithm-Supported Mathematical Theory Exploration", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell["An \"Algorithm\" for Algorithm Synthesis", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell["Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm ", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell["Conclusion", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The Problem of Constructing Gr\[ODoubleDot]bner Bases", "Section"], Cell[TextData[{ " \nFind algorithm ", StyleBox["Gb", FontColor->RGBColor[0, 0, 1]], " such that" }], "Text"], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(is\[Dash]finite[F]\)\), " ", RowBox[{"(", GridBox[{ { RowBox[{"is\[Dash]finite", "[", " ", RowBox[{ StyleBox["Gb", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], " ", "]"}]}, { RowBox[{"is\[Dash]Gr\[ODoubleDot]bner\[Dash]basis", "[", " ", RowBox[{ StyleBox["Gb", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], "]"}]}, { RowBox[{\(ideal[F]\), "=", RowBox[{ RowBox[{"ideal", "[", " ", RowBox[{ StyleBox["Gb", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], "]"}], "."}]}]} }, ColumnAlignments->{Left}], ")"}]}]], "Input"], Cell["Definitions [BB 1965] :", "Text"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["is\[Dash]Gr\[ODoubleDot]bner\[Dash]basis", FontColor->RGBColor[0, 0, 1]], "[", "G", "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{"is\[Dash]confluent", "[", StyleBox[\( \[Rule] \_G\), FontColor->RGBColor[1, 0, 0]], "]"}], "."}]}]], "Input"], Cell[TextData[{ StyleBox[" ", FontWeight->"Bold"], Cell[BoxData[ StyleBox[\( \[Rule] \_G\), FontColor->RGBColor[1, 0, 0]]], FontWeight->"Bold"], " ... a division step.\n" }], "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", "LastSlide"]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar"], Cell[CellGroupData[{ Cell[TextData[{ "Confluence of Division ", Cell[BoxData[ StyleBox[\( \[Rule] \_G\), FontColor->RGBColor[1, 0, 0]]]], "\n" }], "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["is\[Dash]confluent", FontColor->RGBColor[0, 0, 1]], "[", "\[Rule]", "]"}], " ", ":", \(\(\[DoubleLeftRightArrow]\)\(\[ForAll] \+\(f1, f2\)\((f1\( \ \[LeftRightArrow] \^*\)f2 \[Implies] f1\(\[DownArrow]\^*\)f2)\)\)\)}]], "Input"], Cell[GraphicsData["Metafile", "\<\ CF5dJ6E]HGAYHf4PEfU^I6mgLb15CDHPAVmbKF5d0@0002J@0@0006`00000000000000=l1001W0@00 00000000002a;P00=BD00215CDH00040T2H00:H100030000000000000000000000@00003003n0000 b`000000000000000000033P0`3h60<02P00010000000000000000T0000@0000h04006P1000D0000 300000d0000W00006000004000000000oooo0000000U000030000040000U0000300000P0080U0000 30000040001<0000I000000000000000g`4006L10000000000000>01001X0@008@3`000000000000 0020?`00000000000020?`0000000000000000000000000000000000000000009@0000`000010000 9@0000`000000020:00000`0000100009@0000`0000700203000010000000000000004H0000X0000 700004M4BD<200008`0004L100290000H@40000000160000500000P00017A4U30`000580001`0@00 0@000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000<0040000000@000040000100000000000000000000 00010?ooo`00000P00000000000000000000000000000000000003DU000000P00000000000000000 00000000000100000@000040000100000P0000800000000000000040000100000000000000010000 00000000000000400000000000000040000004S0o`5/`?l19>XC05jlTS2000000@0006Af00P00000 9@0000`000010000600000`0000000026@0000`0003oool26`0001000000000000000180000<0000 0P0004H0000X0000700004M4BD<20000X`0004L1000m0@00H@40000000160000500000P00017A4U3 0`0001P0000<000000000QT0000<0000oooo0Q/0000@000000000000000B000030000080000<0000 4000000000000000AP0002P0000L0000AdA9@`80001b0000CP0009L0001_0000000005l0000h0000 0P0003P000000000>000000000000P400`0000000000o`0000000000000000009@0000`000020000 9@0000`000050020E`0002@0001g0000C@0009L0001Z00000P0009@0D01j06L09@0000`000080020 :00000`0000200009`0001P0000200000000003o000000009@0000`000020000EP0002P0001d0000 H@000800001/00000`0007T0H@1d06`0P01Y02D0000<00001`00P2D0000<00000000P2P0000<0000 0P0004H0000D0000200004M4BD<30000AP0002P0000L0000AdA9@`80001F0000IP0007/000270000 000005l0000h00000P0003P000000000>000000000000P400`0000000000o`000000000000000000 9@0000`0000200009@0000`000050020E`0002@0001K0000I@0007/0002200000P0007P0J01N07l0 9@0000`000080020:00000`0000200009`0001P0000200000000003o000000009@0000`000020000 EP0002P0001H0000N@0006@0002400000`0005d0N@1H08@0I02102D0000<00001`00P2D0000<0000 0000P2P0000<00000P0004H0000D0000200004M4BD<30000AP0002P0000L0000AdA9@`80001F0@00 KP0007/1002?0000000005l0000h00000P0003P000000000>000000000000P400`0000000000o`00 00000000000000009@0000`0000200009@0000`000050020E`0002@0001K0@00K@0007/1002:0000 0P0007P1L01N0HL09@0000`000080020:00000`0000200009`0001P0000200000000003o00000000 9@0000`000020000EP0002P0001H0@00P@0006@1002<00000`0005d1P@1H0H`0I06902D0000<0000 1`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000AP0002P0000L0000 AdA9@`80003f0000>P0001/1001K0000000005l0000h00000P0003P000000000>000000000000P40 0`0000000000o`0000000000000000009@0000`0000200009@0000`000050020E`0002@0003k0000 >@0001/1001F00000P0001P1?03n05<09@0000`000080020:00000`0000200009`0001P000020000 0000003o000000009@0000`000020000EP0002P0003h0000C@0000@1001H00000`000?d0C@3h05P0 105E02D0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000 AP0002P0000L0000AdA9@`80002n0000JP000><0002;0000000005l0000h00000P0003P000000000 >000000000000P400`0000000000o`0000000000000000009@0000`0000200009@0000`000050020 E`0002@000330000J@000><0002600000P000>00K03608<09@0000`000080020:00000`000020000 9`0001P0000200000000003o000000009@0000`000020000EP0002P000300000O@000<`000280000 0`000000000000000P400`0000000000o`0000000000000000009@0000`000020000 9@0000`000050020E`0002@0003O0000D@000?l0001^00000P000?`0E03R06/09@0000`000080020 :00000`0000200009`0001P0000200000000003o000000009@0000`000020000EP0002P0003L0000 I@000>P0001`00000`000>40I@3L0700j01]02D0000<00001`00P2D0000<00000000P2P0000<0000 0P0004H0000D0000200004M4BD<30000AP0002P0000L0000AdA9@`80002Z0000JP000000000000000P400`0000000000o`000000000000000000 9@0000`0000200009@0000`000050020E`0002@0002Y0000J@000<80002500000P000:`0K02o0880 9@0000`000080020:00000`0000200009`0001P0000200000000003o000000009@0000`000020000 EP0002P0002i0000O@000<@0002800000`000;T0Q03408P0`@1m02D0000<00001`00P2D0000<0000 0000P2P0000<00000P0004H0000D0000200004M4BD<30000AP0002P0000L0000AdA9@`8000120@00 KP0005l1002?0000000005l0000h00000P0003P000000000>000000000000P400`0000000000o`00 00000000000000009@0000`0000200009@0000`000050020E`0002@000110@00K@0005X100290000 0P0004@1L01G0HH09@0000`000080020:00000`0000200009`0001P0000200000000003o00000000 9@0000`000020000EP0002P0001A0@00P@0005`1002<00000`000541R01L0H`0F@6102D0000<0000 1`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000AP0002P0000L0000 AdA9@`80000Z0@00DP0004L1001c0000000005l0000h00000P0003P000000000>000000000000P40 0`0000000000o`0000000000000000009@0000`0000200009@0000`000050020E`0002@0000Y0@00 D@000481001]00000P0002`1E00o0FX09@0000`000080020:00000`0000200009`0001P000020000 0000003o000000009@0000`000020000EP0002P0000i0@00I@0004@1001`00000`0003T1K0140G00 @@5U02D0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000 AP0002P0000L0000AdA9@`80000F0@00>P0003<1001K0000000005l0000h00000P0003P000000000 >000000000000P400`0000000000o`0000000000000000009@0000`0000200009@0000`000050020 E`0002@0000E0@00>@0002h1001E00000P0001P1?00[0E809@0000`000080020:00000`000020000 9`0001P0000200000000003o000000009@0000`000020000EP0002P0000U0@00C@000301001H0000 0`0002D1E00`0EP0;@5=02D0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000 200004M4BD<30000AP0002P0000L0000AdA9@`80002B0000CP000:l0001_0000000005l0000h0000 0P0003P000000000>000000000000P400`0000000000o`0000000000000000009@0000`000020000 9@0000`000050020E`0002@0002A0000C@000:X0001Y00000P0009@0D02W06H09@0000`000080020 :00000`0000200009`0001P0000200000000003o000000009@0000`000020000EP0002P0002Q0000 H@000:`0001/00000`000:40J02/06`0Z@1Q02D0000<00001`00P2D0000<00000000P2P0000<0000 0P0004H0000D0000200004M4BD<30000AP0002P0000L0000AdA9@`80001F0000PP0007<0002S0000 000005l0000h00000P0003P000000000>000000000000P400`000000000cc<`00000000000000000 9@0000`0000200009@0000`000050020E`0002@0001E0000P@0006h0002M00000P0005P0Q01[09X0 9@0000`000080020:00000`0000200009`0001P000020000000003?000000000000P400`000000000cc<`0 00000000000000009@0000`0000200009@0000`000050020E`0002@0001]0000W@0008H0002i0000 0P000700X0230;H09@0000`000080020:00000`0000200009`0001P000020000000003?000000000000P40 0`000000000cc<`000000000000000009@0000`0000200009@0000`000050020E`0002@000210000 ]@0009X0003A00000P0008@0^02G0000000000000P400`000000000cc<`000000000000000009@0000`0000200009@0000`000050020 E`0002@0002E0000c@000:h0003Y00000P0009P0d02[0>H09@0000`000080020:00000`000020000 9`0001P000020000000003?`0[@3Q02D0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000 200004M4BD<30000AP0002P0000L0000AdA9@`80002Z0000iP000000000000000P400`000000000cc<`000000000000000009@0000`000020000 9@0000`000050020E`0002@0002Y0000i@000<8000010@000P000:`0j02o0?h09@0000`000080020 :00000`0000200009`0001P000020000000003?000000000000P400`000000000cc<`00000000000000000 9@0000`0000200009@0000`000050020E`0002@0002m0000o@000=H0000I0@000P000<00007C01H1 9@0000`000080020:00000`0000200009`0001P000020000000003?l0000g0@00000005l0000h00000P0003P000000000>000000000000P400`000000000cc<`0 00000000000000009@0000`0000200009@0000`000050020E`0002@0003A00005@400>X0000a0@00 0P000=@0607W02h19@0000`000080020:00000`0000200009`0001P000020000000003?`0000d0@000`000>40<07/03@1j@0Y0BD0000<0000 1`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000AP0002P0000L0000 AdA9@`80001f0@00LP0009<1002C0000000005l0000h00000P0003P000000000>000000000000P40 0`0000000000o`0000000000000000009@0000`0000200009@0000`000050020E`0002@0001e0@00 L@0008h1002=00000P0007P1M02;0HX09@0000`000080020:00000`0000200009`0001P000020000 0000003o000000009@0000`000020000EP0002P000250@00Q@000901002@00000`0008D1S02@0I00 S@6502D0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000200004M4BD<30000 AP0002P0000L0000AdA9@`80001^0@00SP0009<1002_0000000005l0000h00000P0003P000000000 >000000000000P400`000000000cc<`000000000000000009@0000`0000200009@0000`000050020 E`0002@0001c0@00S@0009<1002Z00000P000901T01f0JL09@0000`000080020:00000`000020000 9`0001P000020000000003?000000000000P400`000000000cc<`000000000000000009@0000`000020000 9@0000`000050020E`0002@0001G0@00Z@0007L1003600000P0007@1[01J0L<09@0000`000080020 :00000`0000200009`0001P000020000000003?000000000000P400`000000000cc<`00000000000000000 9@0000`0000200009@0000`000050020E`0002@0000k0@00a@0005/1003R00000P0005P1b00n0Ml0 9@0000`000080020:00000`0000200009`0001P000020000000003?000000000000P400`000000000cc<`0 00000000000000009@0000`0000200009@0000`000050020E`0002@0000O0@00g@0003l1003j0000 0P0003`1h00R0OL09@0000`000080020:00000`0000200009`0001P000020000000003?000000000000P40 0`000000000cc<`000000000000000009@0000`0000200009@0000`000050020E`0002@000070@00 m@0002L1000B0@000P0002@1n00:0@l19@0000`000080020:00000`0000200009`0001P000020000 000003?000000000000P400`000000000cc<`000000000000000009@0000`0000200009@0000`000050020 E`0002@0003[00004@4000/1000^0@000P0000P1507^02/19@0000`000080020:00000`000020000 9`0001P000020000000003?d09@7X0301m00]0BD0000<00001`00P2D0000<00000000P2P0000<00000P0004H0000D0000 200004M4BD<300009@0000`0000500209@0000`000080020:`0001P0000l0000M00005<0002<0000 9@0000`0000000209@0000`000070020600000`0000000026@0000`0003oool26`00010000000000 00000580001`0@000P000?3oool0000000000000002@0@000000001002910780J@1Q06`000000000 000000000000000000000000000000000000000000000000000000000000000000380=3R4`2XQlP0 oG43<000002H@0<`3`000080002TQlP0000006CS4`3K?`<`Y8O80000000DPlP0I>@C060000180000H00004P00015O08`1`00060000000000 F>@C07^PS32TQlP0H00004P0001P0000B0000:B7b03Pi1<033/3<93T4`010000 000C08Bo2GhP2@42Y>@4000diA<00000008PSS0P2@42Y>"], "Graphics", ImageSize->{264, 197.625}, ImageMargins->{{2, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}] }, Open ]] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Knowledge on the Concepts Involved", "Section"], Cell[BoxData[ \(h1\( \[Rule] \_G\)\(h2\ \ \[Implies] \ p\ . \ h1\( \[Rule] \_G\)\(\(p\ . \ h2\)\(\ \ \)\)\)\)], "Input"], Cell["etc.", "Text", CellMargins->{{47.5, Inherited}, {Inherited, Inherited}}] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Algorithm Scheme \"Critical Pair / Completion\"", "Section"], Cell[BoxData[GridBox[{ { RowBox[{ RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], " ", "=", RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, pairs[F]\), "]"}]}]}, { RowBox[{ RowBox[{ RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, \[LeftAngleBracket]\[RightAngleBracket]\), "]"}], "=", "F"}], "\[IndentingNewLine]"}]}, { RowBox[{ RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, \[LeftAngleBracket]\[LeftAngleBracket]g1, g2\[RightAngleBracket], p\&_\[RightAngleBracket]\), "]"}], "=", "\[IndentingNewLine]", RowBox[{"where", "[", RowBox[{ RowBox[{"f", "=", RowBox[{ StyleBox["lc", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}]}], ",", \(h1 = trd[rd[f, g1], F]\), ",", \(h2 = trd[rd[f, g2], F]\), ",", "\[IndentingNewLine]", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ { RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, \[LeftAngleBracket]p\&_\ \[RightAngleBracket]\), "]"}], "\[DoubleLeftArrow]", \(h1 = h2\)}, { RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", RowBox[{ RowBox[{"F", "\[Cap]", RowBox[{ StyleBox["df", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}]}], ",", RowBox[{\(\[LeftAngleBracket]p\&_\ \[RightAngleBracket]\), "\[CupCap]", RowBox[{"\[LeftAngleBracket]", RowBox[{ RowBox[{"\[LeftAngleBracket]", RowBox[{\(F\_k\), ",", RowBox[{ StyleBox["df", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}]}], "\[RightAngleBracket]"}], \( \ \[VerticalSeparator] \+\(k = 1, \[Ellipsis], \[LeftBracketingBar]F\ \[RightBracketingBar]\)\)}], "\[RightAngleBracket]"}]}]}], "]"}], "\[DoubleLeftArrow]", "otherwise"} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]}], " ", "]"}]}]} }, ColumnAlignments->{Left}]], "Input"], Cell["\<\ This scheme can be tried in any domain, in which we have a reduction \ operation rd that depends on sets F of objects and a Noetherian relation \ \[Succeeds] which interacts with rd in the following natural way: \ \>", "Text"], Cell[BoxData[ \(\[ForAll] \+\(f, g\)\(\((f \[SucceedsEqual] rd[f, g])\)\(.\)\)\)], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The Essential Problem", "Section"], Cell["\<\ The problem of synthesizing a Gr\[ODoubleDot]bner bases algorithm can now be \ also stated by asking whether, starting with the proof of\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{\(\[ForAll] \+F\), RowBox[{" ", RowBox[{"(", GridBox[{ { RowBox[{"is\[Dash]finite", "[", " ", RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], " ", "]"}]}, { RowBox[{ "is\[Dash]Gr\[ODoubleDot]bner\[Dash]basis", "[", " ", RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], "]"}]}, { RowBox[{\(ideal[F]\), "=", RowBox[{"ideal", "[", " ", RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", "F", "]"}], "]"}]}]} }, ColumnAlignments->{Left}], ")"}]}]}], ","}]], "Input"], Cell[TextData[{ " we can ", StyleBox["automatically", FontSlant->"Italic", FontColor->RGBColor[1, 0, 0]], StyleBox[" produce the idea", FontColor->RGBColor[1, 0, 0]], " that" }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["lc", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}], "=", RowBox[{ StyleBox["lcm", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(lp[g1], lp[g2]\), "]"}]}]], "Input"], Cell["and", "Text"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["df", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}], "=", RowBox[{"h1", StyleBox["-", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "h2"}]}]], "Input"], Cell["and prove that the idea is correct.", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Now Start the (Automated) Correctness Proof", "Section"], Cell[TextData[{ "\nWith current theorem proving technology, in the ", StyleBox["Theorema", FontSlant->"Italic"], " system (and other provers), the proof attempt could be done \ automatically. (", StyleBox["Ongoing PhD thesis of A. Craciun", FontColor->RGBColor[0, 0, 1]], ".)" }], "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Details", "Section"], Cell["\<\ It should be clear that, if the algorithm terminates, the final result is a \ finite set (of polynomials) G that has the property\ \>", "Text"], Cell[BoxData[ RowBox[{\(\[ForAll] \+\(g1, g2 \[Element] G\)\), RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"where", "[", RowBox[{\(f = lc[g1, g2]\), ",", \(h1 = trd[rd[f, g1], G]\), ",", \(h2 = trd[rd[f, g2], G]\), ",", RowBox[{"\[Or]", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(h1 = h2\)}, {\(df[h1, h2] \[Element] G\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]}]}], " ", "]"}], ")"}], "."}]}]}]], "Input"], Cell["We now try to prove that, if G has this property, then ", "Text"], Cell[BoxData[ \(is\[Dash]finite[G], \[IndentingNewLine]ideal[F] = ideal[G], \[IndentingNewLine]is\[Dash]Gr\[ODoubleDot]bner\[Dash]basis[ G], \ \[IndentingNewLine]\ \ \ \ \ \ i . e . \ is\[Dash]Church\[Dash]Rosser[\( \[Rule] \_G\)] . \)], "Input"], Cell["\<\ Here, we only deal with the third, most important, property. \ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Using Available Knowledge", "Section"], Cell["\<\ Using Newman's lemma and some elementary properties it can be shown that it \ is sufficient to prove\ \>", "Text"], Cell[BoxData[ RowBox[{\(is\[Dash]Church\[Dash]Rosser[\( \[Rule] \_G\)]\), "\[DoubleLeftRightArrow]", " ", RowBox[{\(\[ForAll] \+p\), RowBox[{ RowBox[{\(\[ForAll] \+\(f1, f2\)\), RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(p\( \[Rule] \_G\)f1\)}, {\(p\( \[Rule] \_G\)f2\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}], " ", ")"}], "\[Implies]", \(f1\(\(\[DownArrow]\_G\)\^*\)f2\)}], ")"}], "."}]}]}]}]}]}]], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["The (Automated) Proof Attempt", "Section"], Cell["\<\ Let now the power product p and the polynomials f1, f2 be arbitary but fixed \ and assume\ \>", "Text"], Cell[BoxData[ RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(p\( \[Rule] \_G\)f1\)}, {\(p\( \[Rule] \_G\)\(\(f2\)\(.\)\)\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]], "Input"], Cell["We have to find a polyonomial g such that", "Text"], Cell[BoxData[GridBox[{ {\(\(f1\(\( \[Rule] \_G\)\^*\)g\)\(,\)\)}, {\(f2\(\( \[Rule] \_G\)\^*\)\(\(g\)\(.\)\)\)} }, ColumnAlignments->{Left}]], "Input"], Cell["\<\ From the assumption we know that there exist polynomials g1 and g2 in G such \ that\ \>", "Text"], Cell[BoxData[{GridBox[{ {\(\(lp[g1] | p\)\(,\)\)}, {\(\(f1 = rd[p, g1]\)\(,\)\)} }, ColumnAlignments->{Left}], "\[IndentingNewLine]", GridBox[{ {\(\(lp[g2] | p\)\(,\)\)}, {\(f2 = \(\(rd[p, g2]\)\(.\)\)\)} }, ColumnAlignments->{Left}]}], "Input"], Cell["\<\ From the final situation in the algorithm scheme we know that for these g1 \ and g2\ \>", "Text"], Cell[BoxData[ RowBox[{"\[Or]", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(h1 = h2\)}, {\(\(df[h1, h2] \[Element] G\)\(,\)\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]}]], "Input"], Cell["where", "Text"], Cell[BoxData[GridBox[{ {\(h1 := trd[f1', G], f1' := rd[lc[g1, g2], g1], \)}, {\(h2 := trd[f2', G], f2' := \(\(rd[lc[g1, g2], g2]\)\(.\)\)\)} }, ColumnAlignments->{Left}]], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Case h1=h2", "Section"], Cell[BoxData[ \(lc[g1, g2]\( \[Rule] \_g1\)\(rd[lc[g1, g2], g1]\(\( \[Rule] \_G\)\^*\)trd[ rd[lc[g1, g2], g1], G]\) = \[IndentingNewLine]trd[ rd[lc[g1, g2], g2], G]\(\( \[LeftArrow] \_G\)\^*\)rd[lc[g1, g2], g2]\( \[LeftArrow] \_g2\)\(\(lc[g1, g2]\)\(.\)\)\)], "Input"], Cell["\<\ (Note that here we used the requirements rd[lc[g1,g2],g1]\[Precedes]lc[g1,g2] \ and rd[lc[g1,g2],g2]\[Precedes]lc[g1,g2].)\ \>", "Text"], Cell["Hence, by elementary properties of polynomial reduction,", "Text"], Cell[BoxData[ \(\[ForAll] \+\(a, q\)\(\((\ a\ q\ lc[g1, g2]\( \[Rule] \_g1\)\(a\ q\ rd[lc[g1, g2], g1]\(\( \[Rule] \_G\)\^*\)a\ q\ trd[rd[lc[g1, g2], g1], G]\) = \[IndentingNewLine]a\ q\ trd[rd[lc[g1, g2], g2], G]\(\( \[LeftArrow] \_G\)\^*\)a\ q\ rd[lc[g1, g2], g2]\( \[LeftArrow] \_g2\)\ a\ q\ lc[g1, g2]\ )\)\(.\)\)\)], "Input"], Cell["Now we are stuck in the proof.", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Now Use the Specification Generation Algorithm", "Section"], Cell[TextData[{ StyleBox["Using the above specification generation rule,", FontColor->RGBColor[1, 0, 0]], " we see that we could proceed successfully with the proof if lc[g1,g2] \ satisfied the following requirement " }], "Text"], Cell[BoxData[GridBox[{ { RowBox[{ RowBox[{\(\[ForAll] \+\(p, g1, g2\)\), RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(lp[g1] | p\)}, {\(lp[g2] | p\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}], " ", ")"}], "\[Implies]", RowBox[{"(", RowBox[{\(\[Exists] \+\(a, q\)\), RowBox[{\((p = a\ q\ lc[g1, g2]\ )\), Cell[""]}]}], ")"}]}], ")"}]}], ",", " "}], \((lc\ requirement)\)} }, ColumnAlignments->{Left}]], "Input"], Cell["With such an lc, we then would have ", "Text"], Cell[BoxData[ RowBox[{\(p\( \[Rule] \_g1\)rd[p, g1] = \(a\ q\ rd[lc[g1, g2], g1]\(\( \[Rule] \_G\)\^*\)a\ q\ trd[ rd[lc[g1, g2], g1], G] = \(a\ q\ trd[rd[lc[g1, g2], g2], G]\(\( \[LeftArrow] \_G\)\^*\)a\ q\ rd[lc[g1, g2], g2] = rd[p, g2]\( \[LeftArrow] \_g2\)p\)\)\), StyleBox["}", ShowContents->False]}]], "Input"], Cell["and, hence,", "Text"], Cell[BoxData[ \(\(\(f1\(\( \[Rule] \_G\)\^*\)a\ q\ trd[rd[lc[g1, g2], g1], G]\)\(,\)\)\)], "Input"], Cell[BoxData[ \(\(\(f2\(\( \[Rule] \_G\)\^*\)a\ q\ trd[rd[lc[g1, g2], g1], G]\)\(,\)\)\)], "Input"], Cell["i.e. we would have found a suitable g.", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["\<\ Summarize the (Automatically Generated) Specifications of the Subalgorithm lc\ \ \>", "Section"], Cell["(lc requirement), which also could be written in the form:", "Text"], Cell[BoxData[ RowBox[{ RowBox[{\(\[ForAll] \+\(p, g1, g2\)\), RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(lp[g1] | p\)}, {\(lp[g2] | p\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}], " ", ")"}], "\[Implies]", RowBox[{"(", RowBox[{ RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}], "|", "p"}], ")"}]}], ")"}]}]}], " ", ","}]], "Input"], Cell["and ", "Text"], Cell[BoxData[GridBox[{ { RowBox[{ RowBox[{\(lp[g1]\), "|", RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}]}], ","}]}, { RowBox[{ RowBox[{\(lp[g2]\), "|", RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}]}], ","}]} }, ColumnAlignments->{Left}]], "Input"], Cell["wich is a consequence of", "Text"], Cell[BoxData[ \(lc[g1, g2]\( \[Rule] \_g1\)rd[lc[g1, g2], g1], \[IndentingNewLine]lc[ g1, g2]\( \[Rule] \_g2\)\(\(rd[lc[g1, g2], g2]\)\(.\)\(\[IndentingNewLine]\)\)\)], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Summarize Again", "Section"], Cell["\<\ For synthesizing an algorithm for the Gr\[ODoubleDot]bner bases problem it \ suffices to find an lc satisfying\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{\(\[ForAll] \+\(p, g1, g2\)\), RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ {\(lp[g1] | p\)}, {\(lp[g2] | p\)} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}], " ", ")"}], "\[Implies]", RowBox[{"(", RowBox[{ RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}], "|", "p"}], ")"}]}], ")"}]}]}], " ", ","}]], "Input"], Cell["and ", "Text"], Cell[BoxData[GridBox[{ { RowBox[{ RowBox[{\(lp[g1]\), "|", RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}]}], ","}]}, { RowBox[{\(lp[g2]\), "|", RowBox[{ RowBox[{ StyleBox["lc", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}], "."}]}]} }, ColumnAlignments->{Left}]], "Input"], Cell["\<\ This problem can be solved by any high-school student (or university \ professor)! No knowledge on Gr\[ODoubleDot]bner bases theory necessary!\ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["A Suitable lc", "Section"], Cell[BoxData[ \(lc[g1, g2] = lcm[lp[g1], lp[g2]]\)], "Input"], Cell["\<\ is a suitable function that satisfies the above requirements.\ \>", "Text"], Cell["\<\ Eureka! The crucial function lc (the \"critical pair\" function) in the \ critical pair / completion algorithm scheme has been synthesized \ automatically!\ \>", "Text", FontColor->RGBColor[1, 0, 0]] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Case", FontWeight->"Bold"], " h1\[NotEqual]h2 " }], "Section"], Cell["In this case, df[h1,h2]\[Element]G: ", "Text"], Cell["\<\ In this part of the proof (wich is much easier) we are basically stuck right \ at the beginning. By the requirement generation algorithm we obtain the \ following requirement for df:\ \>", "Text"], Cell["", "Text"], Cell[BoxData[GridBox[{ { RowBox[{\(\[ForAll] \+\(h1, h2\)\), RowBox[{"(", RowBox[{"h1", " ", SuperscriptBox[ SubscriptBox["\[DownArrow]", RowBox[{"{", RowBox[{ StyleBox["df", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}], "}"}]], "*"], "h2"}], ")"}]}], \(\((df\ requirement)\)\(.\)\(\ \ \)\)} }, ColumnAlignments->{Left}]], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Looking to the Knowledge Base for a Suitable df", "Section"], Cell["\<\ (Looking to the knowledge base of elementary properties of polynomial \ reduction, it is now easy to find a function df that satifies (df \ requirement), namely\ \>", "Text"], Cell[BoxData[ \(\(\(df[h1, h2] = h1 - h2\)\(,\)\)\)], "Input"], Cell["because, in fact,", "Text"], Cell[BoxData[ \(\[ForAll] \+\(f, g\)\(\((f\ \(\(\[DownArrow]\_{f - g}\)\^*\)g)\)\(.\)\)\)], "Input"], Cell["\<\ Eureka! The function df (the \"completion\" function) in the critical pair / \ completion algorithm scheme has been \"automatically\" synthesized!)\ \>", "Text"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["An \"Algorithm\" for Algorithm Synthesis", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell["Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm ", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1], FontColor->GrayLevel[0.666667]], Cell["Conclusion", "Section", CellDingbat->None, CellMargins->{{64.625, Inherited}, {Inherited, Inherited}}, CellFrameColor->GrayLevel[1]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["A way of looking at it (\"what would have happened if ...\"):", \ "Section"], Cell[GraphicsData["Metafile", "\<\ CF5dJ6E]HGAYHf4PEfU^I6mgLb15CDHPAVmbKF5d0@0001[d0@0006`0000000000`0006D2002X0P00 00000000001FB`00RU<00215CDH00040m1X000X100040000000000000000000000@0000300100@00 l0000000000000000000003R1020Z@<02P000100002H0000400000T0000@0000I`800:X2000D0000 300000d0000W00006000004000000000o`3o0000000U000030000040000V00007000008000000000 0@000000000000029@0000`000020000:`0001P0000h0@0060400602003X0@009@0000`000000020 :00000`0000100009@0000`000070020:00000`000020000DP000701000200000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000@0000H000010000@0800402000N0000:0`E00005@2h9R80 c>LC0000000@jQ<06>j@O3P7TGcoooooTC083Y4`2ljA<0 B8[:0>H0001`HAX0000002AV?`=8ISl30>TC05jlTS200000I7H02000000U000030000080000H0000 30000000008I000030000?ooo`8K00004000000000000000DP00070100010000h?ooo`0000000000 000009010000000004008T40LP1Y0640K00000000000000000000000000000000000000000000000 000000000000000000000000000008C0:]40c0k204B7C`3<2Dl0c1P0000B000060000180000 K>8C098k0c070000R>8C0040000@i1<0R8C:07CT4`000000I7H02000000U000030000040000X0000 30000080000H000030000000008I000030000?ooo`8K000040000000000000005P0000`0000H0000 4P0000`000010000E0000:P0003700009P4009h100190@000@000000nT400?Y1G`4005<1000?0000 C00000000000000000000?ooooooooooK00001`PA@1T07D0H`1Q07@0J@1_06h07B0P06l0KP0P0000 2`0001D0000A00004P000100000A00002@0000P0000A00004P0000/0000900004@00018000090000 5P0000`0000000004P0000`000020000600000`0000000026@0000`0003oool26`00010000000000 000001H0000<000060000180000<00000@0005@0001H0000`00004`1003J0000K`40004000000?Y1 003j@EP1001i0@000P0004`00000000000000000003ooooooooooe00000a02h04P0000T0000F0000 30000000000B000030000080000H000030000000008I000030000?ooo`8K00004000000000000000 5P0000`0000H00004P0000`000010000E00009@0003`0000C0400:D1001_0@000@000000nT400?Y1 R04007T1000<0000C00000000000000000000?ooooooooooI00006P0K`1g0200M01_0200L01b06l0 MP1U0180000A00005`0000T0000900004@0000X0000A00002`000180000@00004@0001H0000<0000 00000180000<00000P0001P0000<000000000QT0000<0000oooo0Q/0000@000000000000000F0000 300001P0000B000030000040001D0000F00000000000000h0000000000000@0100000000000000000000 00000000000U000030000080000W0000600000<000000000000001h1003N0@00E@4004P200070000^04m0/D1?@;50O01gP7`0Mh1?@;[0Cd2d@5F0RD0000<0000 1`00P2P0000<00000P0002D0000<00000000P2P0000<00000`0004H0000D0000200004M4BD<30000 3000010000000000000002L0000H00000`000000003oo`00000002D0000<00000`0002H0000L0000 0P0000000001000000000000008U000030000080000[000060000701001H0P00<0800;P2000U0000 30000000080X0000300000<0000U0000300000L0080X000030000080000H000030000000008I0000 30000?ooo`8K00004000000000000000600000`0000000026@0000`0003oool26`00010000000000 000001H0000<000060000180000<00000@0005@0002D0000i@0005@2002:0@00M`80004000000?Y1 003j@Gd100210P00300004`00000000000000000003oooooooooof@0001906h0MP1U06h0M01Y06l0 KP0P06l0IP0900004P0000l0000A00004P0000T0000800004@000180000:00004@0000X0000F0000 30000000000B000030000080000H000030000000008I000030000?ooo`8K00004000000000000000 5P0000`0000H00004P0000`000010000E00005@000030@00NP8001L1002M0P000@000000nT400?Y1 V`400:L200010000C00000000000000000000?ooooooooooD00005<0000E00005P0000`000000000 4P0000`000020000600000`0000000026@0000`0003oool26`00010000000000000001H0000<0000 60000180000<00000@0005@0001D0000604007X2000R0@00W@80004000000?Y1003j@K01002W0P00 0@0004`00000000000000000003ooooooooooe00000]00002`0001H0000<000000000180000<0000 0P0001P0000<000000000QT0000<0000oooo0Q/0000@000000000000000F0000300001P0000B0000 30000040001D0000K00002<1001j0P00K04009d200010000003j@@00nT6k0@00Y`8000D0001<0000 0000000000000000oooooooooomH0000L01_06`0N@1c00004P000140000800003`000100000F0000 30000000000B000030000080000B000030000080000<000040000000000000009`0001P000020000 0000003d0001<00000@000000nT400?Y1X@0005H0000=0000C000000000000000 00000?ooooooooooJ00004@0J@1S06/0L`1_06h0801<06D0K@1]0640000G00001`000100000@0000 40000140000B00002@000180000A00006`0001`0000A00005P0000`0000000004P0000`000020000 600000`0000000026@0000`0003oool26`00010000000000000001H0000<000060000180000<0000 0@0005@0002D00000`0004l0003c0000LP00004000000?Y1003j@I/0001l0000300004`000000000 00000000003oooooooooof@0001>06D0M`1]0640KP0P04`0I@1]06d0H@0G00004@0001L0000L0000 4@000180000900004P000140000K00006`000140000F000030000000000B000030000080000H0000 30000000008I000030000?ooo`8K000040000000000000005P0000`0000H00004P0000`000010000 E00005@0001/0000MP0008/0002I00000@000000nT400?Y110400:<000010000C000000000000000 00000?ooooooooooD00002HP000P00005P0000`0000000004P0000`0000200004P0000`000020000 3000010000000000000004H0000X0000700004M4BD<2000030400;@0001P0@002P400000001O0000 >00000<0000h0000000003P00000000000010040000000000000000000000000000002D0000<0000 0`0002L0000H00000P0000000000c9T0000002D0000<00000P0005H0000h0000L`000:<000380000 nP0000L0000i0@L1@P7o00d1a`0O0KD0E07]05h1i01M0@P19@0000`000070020:00000`000030000 9@0000`000000020:00000`000020000AP0001@000080000AdA9@`<0000<00004000000000000000 9`0001P00002000000000030000000000h0000000000000@010000 000000000000000000000000000U0000300000<0000W00006000008000000000000008<1002/0000f0400081000700007@;/02L2m@1L0[h0KP;?03T21`520Pl1 7P8@0BD0000<00001`00P2P0000<00000`0002D0000<00000000P2P0000<00000P0004H0000D0000 200004M4BD<300003000010000000000000002D0000<00002000P2D0000<00001@00P2D0000<0000 3@00P2P0000<00000@0000h0000D000000000100000D0000 \>"], "Graphics", ImageSize->{225.75, 250.375}, ImageMargins->{{37.125, 0}, {0, 5.875}}, ImageRegion->{{0, 1}, {0, 1}}], Cell["\<\ Pairs idea? (The CPC algorithm scheme did not really exist at that time.)\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, \[LeftAngleBracket]\[LeftAngleBracket]g1, g2\[RightAngleBracket], p\&_\[RightAngleBracket]\), "]"}], "=", "\[IndentingNewLine]", RowBox[{"where", "[", RowBox[{ RowBox[{"f", "=", RowBox[{ StyleBox["lc", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(g1, g2\), "]"}]}], ",", \(h1 = trd[rd[f, g1], F]\), ",", \(h2 = trd[rd[f, g2], F]\), ",", "\[IndentingNewLine]", RowBox[{ StyleBox["{", SpanMaxSize->Infinity], GridBox[{ { RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", \(F, \[LeftAngleBracket]p\&_\[RightAngleBracket]\), "]"}], "\[DoubleLeftArrow]", \(h1 = h2\)}, { RowBox[{ StyleBox["A", FontColor->RGBColor[0, 0, 1]], "[", RowBox[{ RowBox[{"F", "\[Cap]", RowBox[{ StyleBox["df", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}]}], ",", RowBox[{\(\[LeftAngleBracket]p\&_\[RightAngleBracket]\), "\[CupCap]", RowBox[{"\[LeftAngleBracket]", RowBox[{ RowBox[{"\[LeftAngleBracket]", RowBox[{\(F\_k\), ",", RowBox[{ StyleBox["df", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], "[", \(h1, h2\), "]"}]}], "\[RightAngleBracket]"}], \( \ \[VerticalSeparator] \+\(k = 1, \[Ellipsis], \[LeftBracketingBar]F\ \[RightBracketingBar]\)\)}], "\[RightAngleBracket]"}]}]}], "]"}], "\[DoubleLeftArrow]", "otherwise"} }, ColumnAlignments->{Left}], StyleBox["}", ShowContents->False]}]}], " ", "]"}]}]], "Input"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Research Topics", "Section"], Cell[GraphicsData["Metafile", "\<\ CF5dJ6E]HGAYHf4PEfU^I6mgLb15CDHPAVmbKF5d0@00010T0@0006`0000:00001`0005X3001E0@00 00000000002QE000mb<00215CDH0004091000:0000040000000000000000000000@00003003n0000 b`000000000000000000033P0`3h60<02P000100001>0000a00000T0000@0000IP<005`1000D0000 300000d0000U0000300000D0080U0000300000P0080[0000600004h000340000k@0001/1000U0000 30000000080U0000300000L0081B0000L04000400000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000600000@00040200100P000400000F2kP0000bP2DH7h2D>LC053Y4`20jA<0_>TC01AmbP3V000000000000000H:>00 ?2SP003Y4`1N_98`P0000040001TMP08000002D0000<00000@0001P0000<000000000QT0000<0000 oooo0Q/0000@000000000000001B0000L0400080003Poooo0000000000000000T04000000000@00R @@1b06T0H@1/00000000000000000000000000000000000000000000000000000000000000000000 00000000bP2/hA<0e7O:0?ea0c000000V403<0l000020000d7O:00000010hQ<0fcl3<=1gbP000000 ]7?:043R4`2[A0<```H1aQdl0c0U?0<`H00004P0001P0000B00006cS4`1P0000B000060000180000 AG`2<0L0001P0000000003CR4`2B>`<`1`0008SS4`1kX8``d7O:060000180000H00004P0003@MlX0 _>@C0000000288h```H1aX3R4`010000 4>@C02QdbP1di1<0000002d0001TMP08000002D0000<00000P0002P0000<00000@0001P0000<0000 00000QT0000<0000oooo0Q/0000@000000000000000F0000300001P0000B000030000040001D0000 N00000X000070000P00002X0000100000736@EEedd5H0000j00000L0001<00000000000000000000 oooooooooomL0000D01b06l0HP1/06D0K@0001D0000;00004P000140000800004@0001/0000F0000 30000000000B000030000080000H000030000000008I000030000?ooo`8K00004000000000000000 5P0000`0000H00004P0000`000010000E00007`0000:0000;P0009<0001A00000@00001`aT5EMM=1 F00000l100080000C00000000000000000000?ooooooooooG00002P0D`1S06P0I@1]06D0:@0;0000 5@000100000B00004@0001/0000A00002`0001H0000<000000000180000<00000P000180000<0000 0P0000`0000@000000000000000U0000300000D0080U0000300000P0080[0000600005P0001@0@00 2P400801000U000030000000080U0000300000L0080H000030000000008I000030000?ooo`8K0000 4000000000000000600000`0000000026@0000`0003oool26`00010000000000000001H0000<0000 60000180000<00000@0005@000240000500009<0002a0000]P0000400000L0000040000h0000000003P0000000000001004000000000 0000000000000000000002D0000<00000@0002L0000H00000`0000000000c9T0000002D0000<0000 0`0005H0000h0000f000018000120@00B@0000L0001e0MP0M@7U02P1i@0X0Oh0M@7n07D12`6>0O40 9@0000`000070020:00000`0000100009@0000`000000020:00000`000030000AP0001@000080000 AdA9@`<0000<00004000000000000000AP0002P0000L0000AdA9@`80000W0@00C`40090100250@00 000005l0000h00000`0003P000000000>0000000000000400@000000000000000000000000000000 9@0000`0000300009`0001P00001000000000030000000000h0000000000000@010000000000000000000000000000000U000030000040000W0000 600000<00000000000000=P000020@00@P4003T100070000 M@780GD1e@4X0MD1:07^0GD1kP5e0O/1SP7Q0BD0000<00001`00P2P0000<00000@0002D0000<0000 0000P2P0000<00000`0004H0000D0000200004M4BD<300003000010000000000000002L0000H0000 0`000000003oo`00000002D0000<00000`0002H0000L00000@0000000001000000000000008U0000 30000040000[000060000;01003@0000N0800?P1000U000030000000080X0000300000<0000U0000 300000L0080X000030000040000<00004000000000000000AP0002P0000L0000AdA9@`80002G0P00 A`400003001m0@00000005l0000h00000@0003P000000000>0000000000000400@00000000000000 00000000000000009@0000`0000100009`0001P0000300000000003D2B07U0UD1V09E0IP2KP7U0Vh1i@9k0Oh2H@4U0000 300000L0080X000030000040000U000030000000080X0000300000<000160000500000P00017A4U3 0`0000`0000@000000000000000U0000300000D0080U0000300000P0080[0000600001P300100@00 /`<00701000U000030000000080U0000300000L0080H000030000000008I000030000?ooo`8K0000 4000000000000000600000`0000000026@0000`0003oool26`00010000000000000001H0000<0000 60000180000<00000@0005@000240000e08008<0001J0`00YP0000400000L000050000000000@00005000 \>"], "Graphics", ImageSize->{344.313, 135.313}, ImageMargins->{{38.625, 0}, {0, 19.5}}, ImageRegion->{{0, 1}, {0, 1}}], Cell[TextData[{ StyleBox["Libraries ", FontWeight->"Bold"], "of algorithm ", StyleBox["schemes", FontWeight->"Bold"], "." }], "Text", CellDingbat->"\[EmptySmallCircle]"], Cell["\<\ More generally, libraries of formulae schemes for definitions, \ propositions, problems, and algorithms.\ \>", "Text"], Cell[TextData[{ StyleBox["Case studies ", FontWeight->"Bold"], "of problem (schemes), knowledge, algorithm schemes and how they produce \ algorithms." }], "Text", CellDingbat->"\[EmptySmallCircle]"], Cell[TextData[{ "How well are ", StyleBox["current reasoning systems suited", FontWeight->"Bold"], " for supporting this approach to algorithm (definition, theorem, problem, \ ...) synthesis?" }], "Text", CellDingbat->"\[EmptySmallCircle]"], Cell[TextData[{ "Improved ", StyleBox["algorithms for generating problem specifications", FontWeight->"Bold"], " from failing proofs." }], "Text", CellDingbat->"\[EmptySmallCircle]"], Cell[TextData[{ "Automated synthesis of ", StyleBox["refinements of the S-polynomials-based Gr\[ODoubleDot]bner bases \ algorithm", FontWeight->"Bold"], "." }], "Text", CellDingbat->"\[EmptySmallCircle]"], Cell[TextData[{ "Automated synthesis of ", StyleBox["Gr\[ODoubleDot]bner bases algorithms not based on S-polynomials", FontWeight->"Bold"], " (do such algorithms exist?)" }], "Text", CellDingbat->"\[EmptySmallCircle]"] }, Open ]], Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageFirst"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPagePrevious"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageNext"]}], ButtonStyle->"SlideHyperlink", ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], ButtonFunction:>FrontEndExecute[ { FrontEndToken[ FrontEnd`SelectedNotebook[ ], "ScrollPageLast"]}], ButtonStyle->"SlideHyperlink"], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], \(\(\ \)\(of\)\(\ \)\), CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], ButtonFrame->"None"]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["References", "Section"], Cell[CellGroupData[{ Cell["On Gr\[ODoubleDot]bner Bases", "Subsubsection"], Cell["\<\ [Buchberger 1965] B. Buchberger. Ein Algorithmus zum Auffinden der Basiselemente des \ Restklassenrings nach einem nulldimensionalen Polynomideal. PhD Thesis, \ Mathematical Institute, University of Innsbruck, December 1965. (English \ Translation by Michael P. Abramson: \"An Algorithm for Finding the Basis \ Element of the Residue Class Ring of a Zero Dimensional Polynomial Ideal\", \ Journal of Symbolic Computation, Vol. 41 (Numbers 3-4), March / April 2006, \ pp. 475 - 511).\ \>", "Text"], Cell["\<\ [Buchberger 1970] B. Buchberger. Ein algorithmisches Kriterium f\[UDoubleDot]r die L\ \[ODoubleDot]sbarkeit eines algebraischen Gleichungssystems (An Algorithmical \ Criterion for the Solvability of Algebraic Systems of Equations). Aequationes \ mathematicae 4/3, 1970, pp. 374-383. (English translation in: [Buchberger, \ Winkler 1998], pp. 535 -545.) Published version of the PhD Thesis of B. \ Buchberger, University of Innsbruck, Austria, 1965.\ \>", "Text"], Cell["\<\ [Buchberger 1998] B. Buchberger. Introduction to Gr\[ODoubleDot]bner Bases. In: [Buchberger, \ Winkler 1998], pp.3-31.\ \>", "Text"], Cell["\<\ [Buchberger, Winkler, 1998] B. Buchberger, F. Winkler (eds.). Gr\[ODoubleDot]bner Bases and Applications, \ Proceedings of the International Conference \"33 Years of Gr\[ODoubleDot]bner \ Bases\", 1998, RISC, Austria, London Mathematical Society Lecture Note \ Series, Vol. 251, Cambridge University Press, 1998.\ \>", "Text"], Cell["\<\ [Becker, Weispfenning 1993] T. Becker, V. Weispfenning. Gr\[ODoubleDot]bner Bases: A Computational \ Approach to Commutative Algebra, Springer, New York, 1993.\ \>", "Text"] }, Open ]], Cell[CellGroupData[{ Cell["On Mathematical Knowledge Management", "Subsubsection"], Cell["\<\ B. Buchberger, G. Gonnet, M. Hazewinkel (eds.) Mathematical Knowledge Management. Special Issue of Annals of Mathematics and Artificial Intelligence, Vol. 38, \ No. 1-3, May 2003, Kluwer Academic Publisher, 232 pages.\ \>", "Text"], Cell["\<\ A.Asperti, B. Buchberger, J.H.Davenport (eds.) Mathematical Knowledge Management. Proceedings of the Second International Conference on Mathematical Knowledge \ Management (MKM 2003), Bertinoro, Italy, Feb.16-18, 2003, Lecture Notes in \ Computer Science, Vol. 2594, Springer, Berlin-Heidelberg-NewYork, 2003, 223 \ pages.\ \>", "Text"], Cell["\<\ A.Asperti, G.Bancerek, A.Trybulec (eds.). Proceedings of the Third International Conference on Mathematical Knowledge \ Management, MKM 2004, Bialowieza, Poland, September 19-21, 2004, Lecture Notes in Computer \ Science, Vol. 3119, Springer, Berlin-Heidelberg-NewYork, 2004\ \>", "Text"] }, Open ]], Cell[CellGroupData[{ Cell["On Theorema", "Subsubsection"], Cell["\<\ [Buchberger et al. 2000] B. Buchberger, C. Dupre, T. Jebelean, F. Kriftner, K. Nakagawa, D. Vasaru, W. \ Windsteiger. The Theorema Project: A Progress Report. In: M. Kerber and M. \ Kohlhase (eds.), Symbolic Computation and Automated Reasoning (Proceedings of \ CALCULEMUS 2000, Symposium on the Integration of Symbolic Computation and \ Mechanized Reasoning, August 6-7, 2000, St. Andrews, Scotland), A.K. Peters, \ Natick, Massachusetts, ISBN 1-56881-145-4, pp. 98-113.\ \>", "Text"] }, Open ]], Cell[CellGroupData[{ Cell["On Theory Exploration and Algorithm Synthesis", "Subsubsection"], Cell[TextData[{ "[Buchberger 2000] \nB. Buchberger. Theory Exploration with ", StyleBox["Theorema", FontSlant->"Italic"], ". \nAnalele Universitatii Din Timisoara, Ser. Matematica-Informatica, Vol. \ XXXVIII, Fasc.2, 2000, (Proceedings of SYNASC 2000, 2nd International \ Workshop on Symbolic and Numeric Algorithms in Scientific Computing, Oct. \ 4-6, 2000, Timisoara, Rumania, T. Jebelean, V. Negru, A. Popovici eds.), ISSN \ 1124-970X, pp. 9-32. " }], "Text"], Cell["\<\ [Buchberger 2003] B. Buchberger. Algorithm Invention and Verification by Lazy Thinking. In: D. Petcu, V. Negru, D. Zaharie, T. Jebelean (eds), Proceedings of SYNASC \ 2003 (Symbolic and Numeric Algorithms for Scientific Computing, Timisoara, \ Romania, October 1\[Dash]4, 2003), Mirton Publishing, ISBN 973\[Dash]661\ \[Dash]104\[Dash]3, pp. 2\[Dash]26.\ \>", "Text"], Cell["\<\ [Buchberger, Craciun 2003] B. Buchberger, A. Craciun. Algorithm Synthesis by Lazy Thinking: Examples and \ Implementation in Theorema. in: Fairouz Kamareddine (ed.), Proc. of the \ Mathematical Knowledge Management Workshop, Edinburgh, Nov. 25, 2003, \ Electronic Notes on Theoretical Computer Science, volume dedicated to the \ MKM 03 Symposium, Elsevier, ISBN 044451290X, to appear.\ \>", "Text"], Cell["\<\ [Buchberger 2005] B. Buchberger. Towards the Automated Synthesis of a Gr\[ODoubleDot]bner Bases Algorithm. RACSAM (Review of the Royal Spanish Academy of Science), Vol. 98/1, pp. \ 65-75, 2005. \ \>", "Text"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Appendix: The Proof Notebooks Automatically Generated by Theorema for the \ Synthesis of the Merge-Sort Algorithm\ \>", "Section"], Cell[CellGroupData[{ Cell["Notebook 1:", "Subsection"], Cell["Prove:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Theorem (correctness of sort))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Theorem (correctness of sort)"], Cell["under the assumptions:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ \(is\[Dash]sorted[\[LeftAngleBracket]\[RightAngleBracket]]\)], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[GreaterEqual]", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is permuted version): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ \(\[LeftAngleBracket]\[RightAngleBracket] \[TildeTilde] \ \[LeftAngleBracket]\[RightAngleBracket]\)], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is permuted version): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is permuted version): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{\(\[LeftAngleBracket]\[RightAngleBracket]\), "\[NotTildeTilde]", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is permuted version): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is permuted version): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Element]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{ RowBox[{"dfo", "[", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is permuted version): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted version))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted version)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Proposition (is tuple tuple))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Proposition (is tuple tuple)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (prepend): \[Cup])", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Cup]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], "=", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (prepend): \[Cup]"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Proposition (singleton tuple is singleton tuple))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]singleton\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Proposition (singleton tuple is singleton tuple)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is trivial tuple))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{"is\[Dash]empty\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[Or]", RowBox[{"is\[Dash]singleton\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is trivial tuple)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is element): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[NotElement]", \(\[LeftAngleBracket]\[RightAngleBracket]\)}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is element): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is element): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Element]", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], ")"}], "\[Or]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Element]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is element): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (deletion of the first occurrence): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"dfo", "[", RowBox[{ StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", \(\[LeftAngleBracket]\[RightAngleBracket]\)}], "]"}], "=", \(\[LeftAngleBracket]\[RightAngleBracket]\)}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (deletion of the first occurrence): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (deletion of the first occurrence): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"dfo", "[", RowBox[{ StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], "]"}], "=", RowBox[{"\[LeftDoubleBracketingBar]", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "\[DoubleLeftArrow]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]}], ",", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Cup]", RowBox[{"dfo", "[", RowBox[{ StyleBox["a", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], "]"}]}], "\[DoubleLeftArrow]", "otherwise"}]}], "\[RightDoubleBracketingBar]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (deletion of the first occurrence): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is longer than): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{\(\[LeftAngleBracket]\[RightAngleBracket]\), "\[NotSucceeds]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is longer than): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is longer than): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "\[Succeeds]", \(\[LeftAngleBracket]\[RightAngleBracket]\)}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is longer than): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is longer than): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "\[Succeeds]", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}]}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "\[Succeeds]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(y\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is longer than): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Proposition (trivial tuples are sorted))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]], RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Proposition (trivial tuples are sorted)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Proposition (only trivial tuple permuted version of itself))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]], RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], ")"}], "\[Implies]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Proposition (only trivial tuple permuted version of itself)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Proposition (reflexivity of permuted version))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", StyleBox[\(x\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Proposition (reflexivity of permuted version)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Algorithm (sorted))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{"sorted", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "=", RowBox[{"\[LeftDoubleBracketingBar]", RowBox[{ RowBox[{ RowBox[{"special", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[DoubleLeftArrow]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], ",", RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "]"}]}], "]"}], "\[DoubleLeftArrow]", "otherwise"}]}], "\[RightDoubleBracketingBar]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Algorithm (sorted)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (closure of special))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (closure of special)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (splits are tuples): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"left\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (splits are tuples): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (splits are tuples): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"right\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (splits are tuples): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (splits are shorter): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]], RowBox[{"(", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Succeeds]", RowBox[{"left\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (splits are shorter): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (splits are shorter): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]], RowBox[{"(", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[Succeeds]", RowBox[{"right\[Dash]split", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (splits are shorter): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (closure of merge))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", GridBox[{ { RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}, { RowBox[{"is\[Dash]tuple", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]} }]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (closure of merge)"], Cell[TextData[{ "We", " try to ", "prove ", StyleBox["(", "Label"], ButtonBox["Theorem (correctness of sort)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Theorem (correctness of sort)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by well\[Dash]founded induction on ", Cell[BoxData[ FormBox[ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], TraditionalForm]], CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Well\[Dash]founded induction:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], "Assume:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"1"], Cell[TextData[{ Cell["", "Indent"], "Well\[Dash]Founded Induction Hypothesis:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["x1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[Succeeds]", StyleBox["x1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[Implies]", RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["x1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["x1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"2"], Cell[TextData[{ Cell["", "Indent"], "We have to show: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"3"], Cell[TextData[{ "We try to prove ", StyleBox["(", "Label"], ButtonBox["3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by case distinction using ", StyleBox["(", "Label"], ButtonBox["Algorithm (sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Algorithm (sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ". However, the proof fails in at least one of the cases." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell["Case 1: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(4)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"4"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(5)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"5"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (only trivial tuple permuted version of itself)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (only trivial tuple permuted version of itself)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(10)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], ")"}], "\[Implies]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"10"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox[" ", FontColor->RGBColor[0, 0, 1]], Cell[BoxData[ \(TraditionalForm\`\((\(Lemma\ \((Closure\ of\ Special)\)\)\+_)\)\)], FontColor->RGBColor[0, 0, 1]], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(12)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"12"], Cell[TextData[{ "By ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ",Formula ", StyleBox["(", "Label"], ButtonBox["5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(13)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"13"], Cell[TextData[{ "Not all the conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["13", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "can be proved." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["13.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["13.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["12", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "12"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["13.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["13.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["10", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "10"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(14)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"14"], Cell[TextData[{ "The proof of ", StyleBox["(", "Label"], ButtonBox["14", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "14"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "fails.", " (The prover \"QR\" was unable to transform the proof situation.)" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["13.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[Cell[TextData[{ "Pending proof of ", StyleBox["(", "Label"], ButtonBox["13.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "13.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{ "Color"->RGBColor[0.705882, 0.054902, 0.611765]}]], "Text", Background->GrayLevel[0.659998]], Cell["Case 2: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(6)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"6"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(8)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"8"], Cell[TextData[Cell[TextData[{ "Pending proof of ", StyleBox["(", "Label"], ButtonBox["8", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{ "Color"->RGBColor[0.705882, 0.054902, 0.611765]}]], "Text", Background->GrayLevel[0.659998]], Cell["\[EmptySquare]", "ProofText", CellMargins->{{Inherited, Inherited}, {Inherited, 0}}, CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, TextAlignment->Right] }, Open ]], Cell[CellGroupData[{ Cell["Notebook 2", "Subsection"], Cell[TextData[{ "Comment on Notebook 2: Note that in the knowledge base (i.e. the formulae \ listed under \"assumptions\"), the specification ", Cell["", "Indent"], StyleBox["(Lemma (conjecture15): conjecture15)", "Label", LineBreakWithin->False], Cell["", "Blank"], " is now contained, which describes the specification automatically \ generated (from the failing proof in Notebook 1) for the function \ 'special'.", Cell["", "ProofText"], " The proof then proceeds as in Notebook 1 but succeeds to get over the \ point at which the first proof was stuck." }], "Text"], Cell["Prove:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Theorem (correctness of sort))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Theorem (correctness of sort)"], Cell["under the assumptions:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ \(is\[Dash]sorted[\[LeftAngleBracket]\[RightAngleBracket]]\)], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[GreaterEqual]", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox[" .... and all the formulae in the assumptions of Notebook 1", "Label", LineBreakWithin->False], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (closure of merge))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", GridBox[{ { RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}, { RowBox[{"is\[Dash]tuple", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]} }]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (closure of merge)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture15): conjecture15)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[Implies]", RowBox[{"(", RowBox[{ RowBox[{"special", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "=", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], ")"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture15): conjecture15"], Cell[TextData[{ "We", " try to ", "prove ", StyleBox["(", "Label"], ButtonBox["Theorem (correctness of sort)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Theorem (correctness of sort)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by applying several proof methods for sequences. " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "We", " try to ", "prove ", StyleBox["(", "Label"], ButtonBox["Theorem (correctness of sort)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Theorem (correctness of sort)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by well\[Dash]founded induction on ", Cell[BoxData[ FormBox[ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], TraditionalForm]], CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Well\[Dash]founded induction:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], "Assume:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"1"], Cell[TextData[{ Cell["", "Indent"], "Well\[Dash]Founded Induction Hypothesis:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["x2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[Succeeds]", StyleBox["x2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[Implies]", RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["x2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["x2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"2"], Cell[TextData[{ Cell["", "Indent"], "We have to show: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"3"], Cell[TextData[{ "We try to prove ", StyleBox["(", "Label"], ButtonBox["3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by case distinction using ", StyleBox["(", "Label"], ButtonBox["Algorithm (sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Algorithm (sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ". However, the proof fails in at least one of the cases." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell["Case 1: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(4)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"4"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(5)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"5"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (trivial tuples are sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (trivial tuples are sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(9)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"9"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (only trivial tuple permuted version of itself)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (only trivial tuple permuted version of itself)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(10)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], ")"}], "\[Implies]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"10"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of special)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of special)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(11)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"11"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture15): conjecture15", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture15): conjecture15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(13)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"14"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["13", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(21)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"21"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["21", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "21"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(22)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[And]", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"22"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["22", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true by ", StyleBox["(", "Label"], ButtonBox["10", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "16"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["9", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "9"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Case 2: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(6)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"6"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(8)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"8"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " , by ", StyleBox["(", "Label"], ButtonBox["2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are tuples): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ",", StyleBox[" (", "Label"], ButtonBox["Lemma (splits are tuples): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["),", "Label"], " we obtain: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(23)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"23"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(24)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"24"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["23", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "23"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(25)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"25"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["24", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "24"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(26)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"26"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["8", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(41)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"41"], Cell[TextData[{ "Not all the conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["41", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "can be proved." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ " ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["), ", "Label"], " by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of merge)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of merge)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[") ", "Label"], "is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(42)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"42"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["42", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "The proof of ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "fails.", " (The prover \"QR\" was unable to transform the proof situation.)" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[Cell[TextData[{ "Pending proof of ", StyleBox["(", "Label"], ButtonBox["41.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{ "Color"->RGBColor[0.705882, 0.054902, 0.611765]}]], "Text", Background->GrayLevel[0.659998]], Cell["\[EmptySquare]", "ProofText", CellMargins->{{Inherited, Inherited}, {Inherited, 0}}, CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, TextAlignment->Right] }, Open ]], Cell[CellGroupData[{ Cell["Notebook 3", "Subsection"], Cell[TextData[{ "Comment on Notebook 3: Note that in the knowledge base (i.e. the formulae \ listed under \"assumptions\"), the additional specification ", Cell["", "Indent"], "(", StyleBox["Lemma (conjecture44): conjecture44)", "Label", LineBreakWithin->False], Cell["", "Blank"], " is now contained, which describes part of the specification \ automatically generated (from the failing proof in Notebook 2) for the \ functions 'left', 'right', and 'merge'.", Cell["", "ProofText"], " The proof then proceeds as in Notebook 2 but succeeds to get over the \ point at which the second proof was stuck." }], "Text"], Cell["Prove:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Theorem (correctness of sort))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Theorem (correctness of sort)"], Cell["under the assumptions:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ \(is\[Dash]sorted[\[LeftAngleBracket]\[RightAngleBracket]]\)], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[GreaterEqual]", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox[" ... and all the assumptions of Notebook 1 ...", "Label", LineBreakWithin->False] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (closure of merge))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", GridBox[{ { RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}, { RowBox[{"is\[Dash]tuple", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]} }]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (closure of merge)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture15): conjecture15)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "\[Implies]", RowBox[{"(", RowBox[{ RowBox[{"special", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "=", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], ")"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture15): conjecture15"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture44): conjecture44)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}], "\[Implies]", RowBox[{ RowBox[{"merged", "[", RowBox[{ StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "\[TildeTilde]", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture44): conjecture44"], Cell[TextData[{ "We", " try to ", "prove ", StyleBox["(", "Label"], ButtonBox["Theorem (correctness of sort)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Theorem (correctness of sort)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by well\[Dash]founded induction on ", Cell[BoxData[ FormBox[ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], TraditionalForm]], CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Well\[Dash]founded induction:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], "Assume:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"1"], Cell[TextData[{ Cell["", "Indent"], "Well\[Dash]Founded Induction Hypothesis:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["x3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[Succeeds]", StyleBox["x3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[Implies]", RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["x3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["x3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"2"], Cell[TextData[{ Cell["", "Indent"], "We have to show: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"3"], Cell[TextData[{ "We try to prove ", StyleBox["(", "Label"], ButtonBox["3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by case distinction using ", StyleBox["(", "Label"], ButtonBox["Algorithm (sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Algorithm (sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ". However, the proof fails in at least one of the cases." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell["Case 1: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(4)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"4"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(5)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"5"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (trivial tuples are sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (trivial tuples are sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(9)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"9"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (only trivial tuple permuted version of itself)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (only trivial tuple permuted version of itself)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(10)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], ")"}], "\[Implies]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"10"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of special)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of special)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(11)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"11"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture15): conjecture15", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture15): conjecture15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(13)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"14"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["13", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(21)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"21"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["21", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "21"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(22)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[And]", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"22"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["22", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true by ", StyleBox["(", "Label"], ButtonBox["10", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "16"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["9", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "9"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Case 2: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(6)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"6"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(8)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"8"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " , by ", StyleBox["(", "Label"], ButtonBox["2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are tuples): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ",", StyleBox[" (", "Label"], ButtonBox["Lemma (splits are tuples): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["),", "Label"], " we obtain: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(23)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"23"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(24)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"24"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["23", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "23"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(25)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"25"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["24", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "24"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(26)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"26"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["8", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(41)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"41"], Cell[TextData[{ "Not all the conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["41", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "can be proved." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ " ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["), ", "Label"], " by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of merge)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of merge)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[") ", "Label"], "is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(42)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"42"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["42", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["41.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture44): conjecture44", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture44): conjecture44"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(44)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"44"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["44", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "The proof of ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[") ", "Label"], "fails. (The prover \"QR\" was unable to transform the proof situation.)" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["\[EmptySquare]", "ProofText", CellMargins->{{Inherited, Inherited}, {Inherited, 0}}, CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, TextAlignment->Right] }, Open ]], Cell[CellGroupData[{ Cell["Notebook 4", "Subsection"], Cell[TextData[{ "Comment on Notebook 4: Note that in the knowledge base (i.e. the formulae \ listed under \"assumptions\"), the additional specification ", Cell["", "Indent"], "(", StyleBox["Lemma (conjecture46): conjecture46)", "Label", LineBreakWithin->False], Cell["", "Blank"], " is now contained, which describes the second part of the specification \ automatically generated (from the failing proof in Notebook 3) for the \ functions 'left', 'right', and 'merge'.", Cell["", "ProofText"], " The proof then proceeds as in Notebook 3 but succeeds to get over the \ point at which the third proof was stuck and, actually, proceeds until the \ successful end." }], "Text"], Cell["Prove:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Theorem (correctness of sort))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Theorem (correctness of sort)"], Cell["under the assumptions:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ \(is\[Dash]sorted[\[LeftAngleBracket]\[RightAngleBracket]]\)], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 1"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 2"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Definition (is sorted): 3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"(", RowBox[{ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}], "\[DoubleLeftRightArrow]", RowBox[{ RowBox[{ StyleBox["x", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[GreaterEqual]", StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", RowBox[{ StyleBox["y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox[\(z\&_\), FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[RightAngleBracket]"}], "]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell["\<\ .... and all the assumptions appearing in Notebook 1 ...\ \>", "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Definition (is sorted): 3"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (closure of merge))", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", GridBox[{ { RowBox[{"is\[Dash]tuple", "[", StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}, { RowBox[{"is\[Dash]tuple", "[", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]} }]], RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (closure of merge)"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture15): conjecture15)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "\[Implies]", RowBox[{"(", RowBox[{ RowBox[{"special", "[", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "=", StyleBox["X1", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], ")"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture15): conjecture15"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture44): conjecture44)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}], "\[Implies]", RowBox[{ RowBox[{"merged", "[", RowBox[{ StyleBox["X2", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X3", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "\[TildeTilde]", StyleBox["X4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture44): conjecture44"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(Lemma (conjecture46): conjecture46)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox[ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["X5", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X6", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X7", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}]], RowBox[{"is\[Dash]tuple", "[", StyleBox["X7", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"is\[Dash]tuple", "[", StyleBox["X5", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", StyleBox["X7", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X5", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X5", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", StyleBox["X6", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", StyleBox["X7", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[TildeTilde]", StyleBox["X6", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", StyleBox["X6", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", StyleBox["X7", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}]}], "\[Implies]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ StyleBox["X5", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", StyleBox["X6", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "]"}], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, CellTags->"Lemma (conjecture46): conjecture46"], Cell[TextData[{ "We", " ", "prove ", StyleBox["(", "Label"], ButtonBox["Theorem (correctness of sort)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Theorem (correctness of sort)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by well\[Dash]founded induction on ", Cell[BoxData[ FormBox[ StyleBox["X", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], TraditionalForm]], CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Well\[Dash]founded induction:", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], "Assume:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(1)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"1"], Cell[TextData[{ Cell["", "Indent"], "Well\[Dash]Founded Induction Hypothesis:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(2)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{"is\[Dash]tuple", "[", StyleBox["x4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[Succeeds]", StyleBox["x4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None]}], "\[Implies]", RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ StyleBox["x4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], ",", RowBox[{"sorted", "[", StyleBox["x4", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "]"}]}], "]"}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"2"], Cell[TextData[{ Cell["", "Indent"], "We have to show: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(3)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"3"], Cell[TextData[{ "We prove ", StyleBox["(", "Label"], ButtonBox["3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " by case distinction using ", StyleBox["(", "Label"], ButtonBox["Algorithm (sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Algorithm (sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell["Case 1: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(4)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"4"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(5)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"5"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (trivial tuples are sorted)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (trivial tuples are sorted)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(9)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"9"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Proposition (only trivial tuple permuted version of itself)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Proposition (only trivial tuple permuted version of itself)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(10)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ UnderscriptBox["\[ForAll]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], " "}]], RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], ")"}], "\[Implies]", RowBox[{ StyleBox["Y", FontWeight->"Bold", FontSlant->"Italic", FontColor->RGBColor[0, 0, 1], Background->None], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]}], ")"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"10"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of special)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of special)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(11)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"11"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture15): conjecture15", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture15): conjecture15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", implies:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(13)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"special", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "=", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"14"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["13", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "15"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(21)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"21"], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["21", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "21"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(22)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[And]", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"22"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["22", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true by ", StyleBox["(", "Label"], ButtonBox["10", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "16"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["22.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "22.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["9", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "9"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["Case 2: ", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(6)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"6"], Cell["Hence, we have to prove", "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(8)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], ",", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]}], "]"}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"8"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " , by ", StyleBox["(", "Label"], ButtonBox["2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are tuples): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ",", StyleBox[" (", "Label"], ButtonBox["Lemma (splits are tuples): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["Lemma (splits are shorter): 2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (splits are shorter): 2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["),", "Label"], " we obtain: " }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(23)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"23"], Cell[TextData[{ Cell["", "Indent"], StyleBox["(24)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{"is\[Dash]sorted\[Dash]version", "[", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[",", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"24"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["23", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "23"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(25)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"25"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["24", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "24"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", by ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", we obtain:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(26)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Assumption", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"26"], Cell[TextData[{ "From ", StyleBox["(", "Label"], ButtonBox["1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " and ", StyleBox["(", "Label"], ButtonBox["8", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Definition (is sorted version)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Definition (is sorted version)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(41)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"41"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["41", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ " ", StyleBox["(", "Label"], ButtonBox["41.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox["), ", "Label"], " by ", StyleBox["(", "Label"], ButtonBox["Lemma (closure of merge)", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (closure of merge)"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[") ", "Label"], "is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(42)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"42"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["42", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["42.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "42.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "\[TildeTilde]", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["41.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture44): conjecture44", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture44): conjecture44"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(44)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}, CellTags->"44"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["44", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["44.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["44.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "44.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"merged", "[", RowBox[{ RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], ",", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["41.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "41.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", using ", StyleBox["(", "Label"], ButtonBox["Lemma (conjecture46): conjecture46", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "Lemma (conjecture46): conjecture46"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ", is implied by:" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.305882, 0.815686, 0]}], Cell[TextData[{ Cell["", "Indent"], StyleBox["(52)", "Label", LineBreakWithin->False], Cell["", "Blank"], Cell[BoxData[ RowBox[{ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}], "\[And]", RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}], "\[And]", RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]}]], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[".", "ProofText"] }], "Conclusion", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, CellTags->"52"], Cell[TextData[{ "We prove the individual conjunctive parts of ", StyleBox["(", "Label"], ButtonBox["52", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25..2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"left\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.4"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["25.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "31.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]tuple", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.4", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.5"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.1", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.1"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{ RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "\[TildeTilde]", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.5", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.2", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.2"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"is\[Dash]sorted", "[", RowBox[{"sorted", "[", RowBox[{"right\[Dash]split", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}], "]"}], "]"}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.7"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["26.3", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "33.3"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Proof of ", StyleBox["(", "Label"], ButtonBox["52.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " ", Cell[BoxData[ RowBox[{"\[Not]", RowBox[{"is\[Dash]trivial\[Dash]tuple", "[", RowBox[{"\[LeftAngleBracket]", OverscriptBox[ StyleBox[\(X\_0\), FontWeight->"Plain", FontSlant->"Italic", Background->None], "_"], "\[RightAngleBracket]"}], "]"}]}]], "Expression", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}, FontColor->RGBColor[1, 0, 0]], ":" }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell[TextData[{ "Formula ", StyleBox["(", "Label"], ButtonBox["52.7", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "52.8"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], " is true because it is identical to ", StyleBox["(", "Label"], ButtonBox["6", ButtonFunction:>( Theorema`Provers`Common`BasicProofCells`Private`ExtractTaggedCell[ "6"]&), ButtonEvaluator->Automatic, ButtonStyle->"Hyperlink"], StyleBox[")", "Label"], "." }], "ProofText", CellBracketOptions->{"Color"->RGBColor[0.705882, 0.054902, 0.611765]}], Cell["\[EmptySquare]", "ProofText", CellMargins->{{Inherited, Inherited}, {Inherited, 0}}, CellBracketOptions->{"Color"->RGBColor[0.643137, 0.756863, 1]}, TextAlignment->Right] }, Open ]] }, Open ]] }, FrontEndVersion->"5.2 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 681}}, ScreenStyleEnvironment->"Brackets", WindowToolbars->{"RulerBar", "EditBar"}, WindowSize->{1016, 631}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, Magnification->1.5, StyleDefinitions -> Notebook[{ Cell[CellGroupData[{ Cell["Style Definitions", "Subtitle"], Cell["\<\ Modify the definitions below to change the default appearance of all cells in \ a given style. Make modifications to any definition using commands in the \ Format menu.\ \>", "Text"], Cell[CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[StyleData[All, "Working"], PageWidth->WindowWidth, ScriptMinSize->9], Cell[StyleData[All, "Presentation"], PageWidth->WindowWidth, ScriptMinSize->12, FontSize->16], Cell[StyleData[All, "SlideShow"], PageWidth->WindowWidth, ScrollingOptions->{"PagewiseDisplay"->True}, ShowCellBracket->False, ScriptMinSize->9], Cell[StyleData[All, "Condensed"], PageWidth->WindowWidth, CellBracketOptions->{"Margins"->{1, 1}, "Widths"->{0, 5}}, ScriptMinSize->8, FontSize->11], Cell[StyleData[All, "Printout"], PageWidth->PaperWidth, ScriptMinSize->7, FontSize->10, PrivateFontOptions->{"FontType"->"Outline"}] }, Closed]], Cell[CellGroupData[{ Cell["Notebook Options", "Section"], Cell["\<\ The options defined for the style below will be used at the Notebook level.\ \>", "Text"], Cell[StyleData["Notebook"], PageHeaders->{{Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"], None, Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"]}, {Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"], None, Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"]}}, PageHeaderLines->{True, True}, PrintingOptions->{"FirstPageHeader"->False, "FacingPages"->True}, CellFrameLabelMargins->6, StyleMenuListing->None] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headings", "Section", FontFamily->"Arial"], Cell[CellGroupData[{ Cell[StyleData["Title"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, TextAlignment->Center, LineSpacing->{1, 11}, CounterIncrements->"Title", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subtitle", 0}, {"Subsubtitle", 0}}, FontFamily->"Arial", FontSize->34, FontColor->GrayLevel[1], Background->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Title", "Presentation"], CellMargins->{{0, 0}, {0, 0}}, CellFrameMargins->{{12, 10}, {24, 24}}, TextAlignment->Center, LineSpacing->{1, 0}, FontSize->46], Cell[StyleData["Title", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, TextAlignment->Center, FontSize->20], Cell[StyleData["Title", "Printout"], CellMargins->{{0, 0}, {0, 0}}, TextAlignment->Center, FontSize->24, FontTracking->"Plain", Background->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subtitle"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, TextAlignment->Center, LineSpacing->{1, 3}, ParagraphIndent->-96, CounterIncrements->"Subtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subsubtitle", 0}}, FontFamily->"Arial", FontSize->18, FontColor->GrayLevel[1], Background->RGBColor[0.2, 0.700008, 0.700008]], Cell[StyleData["Subtitle", "Presentation"], CellMargins->{{0, 0}, {4, 0}}, CellFrameMargins->{{12, 10}, {12, 8}}, TextAlignment->Center, LineSpacing->{1, 6}, ParagraphIndent->-157, FontSize->28], Cell[StyleData["Subtitle", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, TextAlignment->Center, ParagraphIndent->-78, FontSize->14], Cell[StyleData["Subtitle", "Printout"], CellMargins->{{0, 0}, {0, 0}}, TextAlignment->Center, ParagraphIndent->-85, FontSize->16, Background->GrayLevel[0.6]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubtitle"], ShowCellBracket->False, CellMargins->{{10, 4}, {30, 10}}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, TextAlignment->Center, CounterIncrements->"Subsubtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}}, FontFamily->"Arial", FontSize->14, FontSlant->"Italic"], Cell[StyleData["Subsubtitle", "Presentation"], CellMargins->{{15, 10}, {50, 10}}, TextAlignment->Center, LineSpacing->{1, 0}, FontSize->22], Cell[StyleData["Subsubtitle", "Condensed"], CellMargins->{{8, 10}, {12, 8}}, TextAlignment->Center, FontSize->12], Cell[StyleData["Subsubtitle", "Printout"], CellMargins->{{9, 10}, {50, 10}}, TextAlignment->Center, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Section"], CellFrame->{{6, 0}, {0, 1}}, CellDingbat->None, CellMargins->{{12, Inherited}, {4, 24}}, CellGroupingRules->{"SectionGrouping", 30}, PageBreakBelow->False, CellFrameMargins->6, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing->{1, 7}, CounterIncrements->"Section", CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily->"Arial", FontSize->16, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Section", "Presentation"], CellFrame->{{8, 0}, {0, 2}}, CellMargins->{{15, 10}, {14, 32}}, CellFrameMargins->{{8, 10}, {10, 14}}, LineSpacing->{1, 2}, FontSize->24, FontTracking->"Condensed"], Cell[StyleData["Section", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Section", "Printout"], CellMargins->{{9, 0}, {2, 50}}, FontSize->14, FontTracking->"Plain", FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsection"], CellMargins->{{12, Inherited}, {8, 20}}, CellGroupingRules->{"SectionGrouping", 40}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing->{1, 7}, CounterIncrements->"Subsection", CounterAssignments->{{"Subsubsection", 0}}, FontFamily->"Arial", FontSize->13, FontWeight->"Bold"], Cell[StyleData["Subsection", "Presentation"], CellMargins->{{15, 10}, {12, 32}}, LineSpacing->{1, 0}, FontSize->22], Cell[StyleData["Subsection", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Subsection", "Printout"], CellMargins->{{9, 0}, {4, 40}}, FontSize->12] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubsection"], CellDingbat->"\[FilledSquare]", CellMargins->{{25, Inherited}, {8, 12}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing->{1, 9}, CounterIncrements->"Subsubsection", FontFamily->"Arial", FontSize->13, FontWeight->"Bold"], Cell[StyleData["Subsubsection", "Presentation"], CellMargins->{{34, 10}, {18, 28}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Subsubsection", "Condensed"], CellMargins->{{22, Inherited}, {2, 12}}, FontSize->10], Cell[StyleData["Subsubsection", "Printout"], CellMargins->{{21, 0}, {4, 20}}, FontSize->11] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Body Text", "Section", FontFamily->"Arial"], Cell[CellGroupData[{ Cell[StyleData["Text"], CellMargins->{{12, 10}, {5, 5}}, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing->{1, 3}, ParagraphSpacing->{0, 12}, CounterIncrements->"Text", FontFamily->"Arial"], Cell[StyleData["Text", "Presentation"], CellMargins->{{15, 10}, {8, 10}}, LineSpacing->{1, 5}, ParagraphSpacing->{0, 12}, FontSize->18], Cell[StyleData["Text", "Condensed"], CellMargins->{{8, 10}, {4, 4}}, LineSpacing->{1, 1}, ParagraphSpacing->{0, 4}], Cell[StyleData["Text", "Printout"], CellMargins->{{9, 0}, {4, 4}}, Hyphenation->True, ParagraphSpacing->{0, 6}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["SmallText"], CellMargins->{{12, 10}, {5, 5}}, InputAutoReplacements->{"TeX"->StyleBox[ RowBox[ {"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX"->StyleBox[ RowBox[ {"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, -0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma"->"Mathematica", "Mma"->"Mathematica", "MMA"->"Mathematica", "gridMathematica"->FormBox[ RowBox[ {"grid", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica"->FormBox[ RowBox[ {"web", AdjustmentBox[ StyleBox[ "Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing->{1, 3}, ParagraphSpacing->{0, 6}, CounterIncrements->"SmallText", FontFamily->"Arial", FontSize->9], Cell[StyleData["SmallText", "Presentation"], CellMargins->{{15, 10}, {8, 10}}, LineSpacing->{1, 5}, FontSize->14], Cell[StyleData["SmallText", "Condensed"], CellMargins->{{8, 10}, {2, 2}}, LineSpacing->{1, 2}, FontSize->9], Cell[StyleData["SmallText", "Printout"], CellMargins->{{9, 0}, {4, 4}}, Hyphenation->True, FontSize->7] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Styles for Input/Output", "Section"], Cell["\<\ The cells in this section define styles used for input and output to the \ kernel. Be careful when modifying, renaming, or removing these styles, \ because the front end associates special meanings with these style names.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Input"], CellFrame->{{3, 0}, {0, 0}}, CellMargins->{{52, 10}, {8, 8}}, Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{5, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, LinebreakAdjustments->{0.85, 2, 10, 0, 1}, CounterIncrements->"Input", FontWeight->"Bold", Background->GrayLevel[0.666667]], Cell[StyleData["Input", "Presentation"], CellFrame->{{5, 0}, {0, 0}}, CellMargins->{{74, 10}, {8, 10}}, CellFrameMargins->{{10, 10}, {14, 14}}, LineSpacing->{1, 0}, FontSize->18] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["InlineInput"], Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, DefaultFormatType->DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, AutoItalicWords->{}, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", FontWeight->"Bold"], Cell[StyleData["InlineInput", "Presentation"], CellMargins->{{10, 10}, {12, 12}}, FontSize->18] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Output"], CellFrame->True, CellMargins->{{52, 10}, {8, 8}}, CellEditDuplicate->True, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, CellLabelMargins->{{3, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", FormatType->InputForm, CounterIncrements->"Output", Background->None], Cell[StyleData["Output", "Presentation"], CellFrame->True, CellMargins->{{74, 10}, {12, 5}}, CellFrameMargins->{{10, 10}, {14, 14}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Output", "Condensed"], CellFrame->True, CellMargins->{{40, Inherited}, {4, 1}}], Cell[StyleData["Output", "Printout"], CellFrame->True, CellMargins->{{44, 0}, {6, 2}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Message"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, FormatType->InputForm, CounterIncrements->"Message", StyleMenuListing->None, FontColor->RGBColor[1, 0, 0]], Cell[StyleData["Message", "Presentation"], CellMargins->{{86, 20}, {10, 10}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Message", "Condensed"], CellMargins->{{50, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Message", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}, FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Print"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, FormatType->InputForm, CounterIncrements->"Print", StyleMenuListing->None], Cell[StyleData["Print", "Presentation"], CellMargins->{{86, 20}, {4, 4}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Print", "Condensed"], CellMargins->{{50, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Print", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Graphics"], CellMargins->{{62, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"GraphicsGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, FormatType->InputForm, CounterIncrements->"Graphics", StyleMenuListing->None], Cell[StyleData["Graphics", "Presentation"], CellMargins->{{86, 20}, {8, 8}}, FontSize->18], Cell[StyleData["Graphics", "Condensed"], CellMargins->{{52, Inherited}, {Inherited, Inherited}}, ImageSize->{175, 175}], Cell[StyleData["Graphics", "Printout"], CellMargins->{{54, Inherited}, {Inherited, Inherited}}, ImageSize->{250, 250}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["CellLabel"], StyleMenuListing->None, FontFamily->"Helvetica", FontSize->11, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["CellLabel", "Presentation"], FontSize->12], Cell[StyleData["CellLabel", "Condensed"], FontSize->8], Cell[StyleData["CellLabel", "Printout"], FontSize->8, FontColor->GrayLevel[0]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Unique Styles", "Section"], Cell[CellGroupData[{ Cell[StyleData["Author"], ShowCellBracket->False, CellMargins->{{10, 4}, {2, 10}}, LineSpacing->{1, 5}, FontSize->16, FontSlant->"Italic"], Cell[StyleData["Author", "Presentation"], CellMargins->{{15, 10}, {4, 16}}, LineSpacing->{1, 5}, ParagraphSpacing->{0, 12}, FontSize->24], Cell[StyleData["Author", "Condensed"], CellMargins->{{8, 10}, {1, 4}}, LineSpacing->{1, 1}, ParagraphSpacing->{0, 4}, FontSize->12], Cell[StyleData["Author", "Printout"], CellMargins->{{9, 0}, {4, 12}}, ParagraphSpacing->{0, 6}, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Copyright"], ShowCellBracket->False, CellMargins->{{10, 10}, {40, 2}}, FontFamily->"Helvetica", FontSize->9], Cell[StyleData["Copyright", "Presentation"], CellMargins->{{15, 10}, {50, 4}}, LineSpacing->{1, 5}, FontSize->14], Cell[StyleData["Copyright", "Condensed"], CellMargins->{{8, 10}, {12, 1}}, LineSpacing->{1, 2}, FontSize->9], Cell[StyleData["Copyright", "Printout"], CellMargins->{{9, 0}, {72, 4}}, FontSize->7] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Example"], CellMargins->{{12, 10}, {5, 12}}, LineSpacing->{1, 3}, ParagraphSpacing->{0, 12}, CounterIncrements->"Example", FontFamily->"Times", FontWeight->"Bold"], Cell[StyleData["Example", "Presentation"], CellMargins->{{18, 10}, {8, 20}}, LineSpacing->{1, 5}, ParagraphSpacing->{0, 12}, FontSize->18], Cell[StyleData["Example", "Condensed"], CellMargins->{{8, 10}, {4, 8}}, LineSpacing->{1, 1}, ParagraphSpacing->{0, 4}], Cell[StyleData["Example", "Printout"], CellMargins->{{9, 0}, {4, 10}}, ParagraphSpacing->{0, 6}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Definition"], CellFrame->{{3, 0}, {0, 0}}, CellMargins->{{52, 10}, {8, 8}}, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{23, Inherited}, {Inherited, Inherited}}, ShowStringCharacters->True, CounterIncrements->"Definition", FontFamily->"Helvetica", FontWeight->"Bold", FontColor->GrayLevel[1], Background->RGBColor[0.2, 0.700008, 0.700008]], Cell[StyleData["Definition", "Presentation"], CellFrame->{{5, 0}, {0, 0}}, CellMargins->{{74, 10}, {8, 12}}, CellFrameMargins->{{10, 10}, {14, 14}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Definition", "Condensed"], CellMargins->{{40, 10}, {1, 4}}], Cell[StyleData["Definition", "Printout"], CellMargins->{{44, 0}, {2, 6}}, Hyphenation->True, Background->GrayLevel[0.6]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Theorem"], CellFrame->{{3, 0}, {0, 0}}, CellMargins->{{52, 10}, {8, 8}}, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{23, Inherited}, {Inherited, Inherited}}, ShowStringCharacters->True, CounterIncrements->"Theorem", FontFamily->"Helvetica", FontWeight->"Bold", FontColor->GrayLevel[1], Background->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Theorem", "Presentation"], CellFrame->{{5, 0}, {0, 0}}, CellMargins->{{74, 10}, {8, 12}}, CellFrameMargins->{{10, 10}, {14, 14}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Theorem", "Condensed"], CellMargins->{{40, 10}, {1, 4}}], Cell[StyleData["Theorem", "Printout"], CellMargins->{{44, 0}, {2, 6}}, Hyphenation->True, Background->GrayLevel[0.4]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["ExerciseMain"], CellFrame->{{6, 0}, {0, 1}}, CellMargins->{{12, Inherited}, {4, 20}}, CellGroupingRules->{"SectionGrouping", 30}, PageBreakBelow->False, CellFrameColor->RGBColor[0.571389, 0.19675, 0.570504], LineSpacing->{1, 7}, CounterIncrements->"Subsection", CounterAssignments->{{"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->16, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["ExerciseMain", "Presentation"], CellFrame->{{8, 0}, {0, 2}}, CellMargins->{{18, 10}, {12, 32}}, CellFrameMargins->{{10, 10}, {14, 14}}, LineSpacing->{1, 2}, FontSize->24, FontTracking->"Condensed"], Cell[StyleData["ExerciseMain", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["ExerciseMain", "Printout"], CellMargins->{{9, 0}, {2, 50}}, CellFrameColor->GrayLevel[0.500008], FontSize->14, FontTracking->"Plain", FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Exercise"], CellDingbat->"\[FilledDownTriangle]", CellMargins->{{23, Inherited}, {4, 18}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, LineSpacing->{1, 7}, CounterIncrements->"Subsubsection", FontFamily->"Times", FontSize->13, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Exercise", "Presentation"], CellMargins->{{28, 10}, {10, 34}}, LineSpacing->{1, 0}, FontSize->22], Cell[StyleData["Exercise", "Condensed"], CellMargins->{{17, Inherited}, {2, 12}}, FontSize->10], Cell[StyleData["Exercise", "Printout"], CellFrame->{{0, 0}, {0.5, 0}}, CellDingbat->None, CellMargins->{{9, 0}, {6, 20}}, Hyphenation->True, FontSize->11, FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["ExerciseText"], CellMargins->{{62, 10}, {5, 5}}, LineSpacing->{1, 3}, ParagraphSpacing->{0, 8}, CounterIncrements->"ExerciseText", FontFamily->"Times"], Cell[StyleData["ExerciseText", "Presentation"], CellMargins->{{100, 10}, {8, 8}}, LineSpacing->{1, 5}, ParagraphSpacing->{0, 12}, FontSize->18], Cell[StyleData["ExerciseText", "Condensed"], CellMargins->{{52, 10}, {2, 2}}, LineSpacing->{1, 1}, ParagraphSpacing->{0, 4}], Cell[StyleData["ExerciseText", "Printout"], CellMargins->{{54, 0}, {4, 4}}, Hyphenation->True, ParagraphSpacing->{0, 6}] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Formulas and Programming", "Section"], Cell[CellGroupData[{ Cell[StyleData["DisplayFormula"], CellMargins->{{62, 10}, {2, 10}}, CellHorizontalScrolling->True, DefaultFormatType->DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", ScriptLevel->0, SingleLetterItalics->True, UnderoverscriptBoxOptions->{LimitsPositioning->True}], Cell[StyleData["DisplayFormula", "Presentation"], CellMargins->{{100, 10}, {8, 16}}, FontSize->18], Cell[StyleData["DisplayFormula", "Condensed"], CellMargins->{{52, 10}, {2, 10}}, FontSize->10], Cell[StyleData["DisplayFormula", "Printout"], CellMargins->{{54, 10}, {2, 10}}, FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["ChemicalFormula"], CellMargins->{{62, 10}, {2, 10}}, DefaultFormatType->DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, LanguageCategory->"Formula", AutoSpacing->False, ScriptLevel->1, ScriptBaselineShifts->{0.6, Automatic}, SingleLetterItalics->False, ZeroWidthTimes->True], Cell[StyleData["ChemicalFormula", "Presentation"], CellMargins->{{100, 10}, {8, 12}}, FontSize->18], Cell[StyleData["ChemicalFormula", "Condensed"], CellMargins->{{52, 10}, {2, 10}}, FontSize->10], Cell[StyleData["ChemicalFormula", "Printout"], CellMargins->{{54, 10}, {2, 10}}, FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Program"], CellMargins->{{12, 10}, {Inherited, 6}}, Hyphenation->False, LanguageCategory->"Formula", FontFamily->"Courier"], Cell[StyleData["Program", "Presentation"], CellMargins->{{20, 30}, {4, 4}}, FontSize->18], Cell[StyleData["Program", "Condensed"], CellMargins->{{8, 10}, {Inherited, 4}}, FontSize->9.5], Cell[StyleData["Program", "Printout"], CellMargins->{{9, 0}, {Inherited, 4}}, FontSize->9.5] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Automatic Numbering", "Section"], Cell["\<\ The following styles are useful for numbered equations, figures, etc. They \ automatically give the cell a FrameLabel containing a reference to a \ particular counter, and also increment that counter.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["NumberedEquation"], CellMargins->{{62, 10}, {Inherited, Inherited}}, CellFrameLabels->{{None, Cell[ TextData[ {"(", CounterBox[ "NumberedEquation"], ")"}]]}, {None, None}}, DefaultFormatType->DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement"->True, HyphenationOptions->{"HyphenationCharacter"->"\[Continuation]"}, CounterIncrements->"NumberedEquation", FormatTypeAutoConvert->False], Cell[StyleData["NumberedEquation", "Presentation"], CellMargins->{{100, 10}, {6, 8}}, FontSize->18], Cell[StyleData["NumberedEquation", "Condensed"], CellMargins->{{52, 10}, {Inherited, Inherited}}], Cell[StyleData["NumberedEquation", "Printout"], CellMargins->{{54, 0}, {Inherited, Inherited}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["NumberedFigure"], CellMargins->{{62, 145}, {Inherited, Inherited}}, CellFrameLabels->{{None, None}, {Cell[ TextData[ {"Figure ", CounterBox[ "NumberedFigure"]}]], None}}, CounterIncrements->"NumberedFigure", ImageMargins->{{43, Inherited}, {Inherited, 0}}, FormatTypeAutoConvert->False], Cell[StyleData["NumberedFigure", "Presentation"], CellMargins->{{100, 145}, {8, 6}}, FontSize->18], Cell[StyleData["NumberedFigure", "Condensed"]], Cell[StyleData["NumberedFigure", "Printout"]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["NumberedTable"], CellMargins->{{62, 145}, {Inherited, Inherited}}, CellFrameLabels->{{None, None}, {Cell[ TextData[ {"Table ", CounterBox[ "NumberedTable"]}]], None}}, TextAlignment->Center, CounterIncrements->"NumberedTable", FormatTypeAutoConvert->False], Cell[StyleData["NumberedTable", "Presentation"], CellMargins->{{100, 145}, {8, 8}}, FontSize->18], Cell[StyleData["NumberedTable", "Condensed"]], Cell[StyleData["NumberedTable", "Printout"]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[StyleData["Header"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->9, FontSlant->"Italic"], Cell[StyleData["Footer"], CellMargins->{{0, 0}, {0, 4}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->6], Cell[StyleData["PageNumber"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->9, FontWeight->"Bold"] }, Closed]], Cell[CellGroupData[{ Cell["Hyperlink Styles", "Section"], Cell["\<\ The cells below define styles useful for making hypertext ButtonBoxes. The \ \"Hyperlink\" style is for links within the same Notebook, or between \ Notebooks.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Hyperlink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookLocate[ #2]}]&), Active->True, ButtonFrame->"None", ButtonNote->ButtonData}], Cell[StyleData["Hyperlink", "Presentation"]], Cell[StyleData["Hyperlink", "Condensed"]], Cell[StyleData["Hyperlink", "Printout"], FontColor->GrayLevel[0], Background->GrayLevel[1]] }, Closed]], Cell["\<\ The following styles are for linking automatically to the on-line help \ system.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["MainBookLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "MainBook", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["MainBookLink", "Presentation"]], Cell[StyleData["MainBookLink", "Condensed"]], Cell[StyleData["MainBookLink", "Printout"], FontColor->GrayLevel[0], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["AddOnsLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "AddOns", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["AddOnsLink", "Presentation"]], Cell[StyleData["AddOnsLink", "Condensed"]], Cell[StyleData["AddOnLink", "Printout"], FontColor->GrayLevel[0], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["RefGuideLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "RefGuideLink", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["RefGuideLink", "Presentation"]], Cell[StyleData["RefGuideLink", "Condensed"]], Cell[StyleData["RefGuideLink", "Printout"], FontColor->GrayLevel[0], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["GettingStartedLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(Fro