diff -r 0bab4c751478 -r 8c94ca4dd035 src/CTT/ex/Synthesis.thy --- a/src/CTT/ex/Synthesis.thy Fri Nov 25 22:38:10 2022 +0100 +++ b/src/CTT/ex/Synthesis.thy Mon Nov 28 11:38:55 2022 +0000 @@ -3,13 +3,13 @@ Copyright 1991 University of Cambridge *) -section "Synthesis examples, using a crude form of narrowing" +section \Synthesis examples, using a crude form of narrowing\ theory Synthesis imports "../CTT" begin -text "discovery of predecessor function" +text \discovery of predecessor function\ schematic_goal "?a : \pred:?A . Eq(N, pred`0, 0) \ (\n:N. Eq(N, pred ` succ(n), n))" apply intr apply eqintr @@ -18,7 +18,7 @@ apply rew done -text "the function fst as an element of a function type" +text \the function fst as an element of a function type\ schematic_goal [folded basic_defs]: "A type \ ?a: \f:?B . \i:A. \j:A. Eq(A, f ` , i)" apply intr @@ -30,7 +30,7 @@ apply assumption+ done -text "An interesting use of the eliminator, when" +text \An interesting use of the eliminator, when\ (*The early implementation of unification caused non-rigid path in occur check See following example.*) schematic_goal "?a : \i:N. Eq(?A, ?b(inl(i)), <0 , i>) @@ -49,7 +49,7 @@ \ Eq(?A(i), ?b(inr(i)), )" oops - text "A tricky combination of when and split" + text \A tricky combination of when and split\ (*Now handled easily, but caused great problems once*) schematic_goal [folded basic_defs]: "?a : \i:N. \j:N. Eq(?A, ?b(inl()), i) @@ -74,7 +74,7 @@ oops - text "Deriving the addition operator" + text \Deriving the addition operator\ schematic_goal [folded arith_defs]: "?c : \n:N. Eq(N, ?f(0,n), n) \ (\m:N. Eq(N, ?f(succ(m), n), succ(?f(m,n))))" @@ -84,7 +84,7 @@ apply rew done -text "The addition function -- using explicit lambdas" +text \The addition function -- using explicit lambdas\ schematic_goal [folded arith_defs]: "?c : \plus : ?A . \x:N. Eq(N, plus`0`x, x)