# HG changeset patch # User wenzelm # Date 1444503284 -7200 # Node ID 0a29a984a91b344aea33547060b051c298c9d239 # Parent 538100cc4399e81ad07b3e70a652a4fffee99122 more symbols; diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/ILL.thy --- a/src/Sequents/ILL.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/ILL.thy Sat Oct 10 20:54:44 2015 +0200 @@ -31,7 +31,7 @@ PromAux :: "three_seqi" syntax - "_Trueprop" :: "single_seqe" ("((_)/ |- (_))" [6,6] 5) + "_Trueprop" :: "single_seqe" ("((_)/ \ (_))" [6,6] 5) "_Context" :: "two_seqe" ("((_)/ :=: (_))" [6,6] 5) "_PromAux" :: "three_seqe" ("promaux {_||_||_}") @@ -56,63 +56,63 @@ axiomatization where -identity: "P |- P" and +identity: "P \ P" and -zerol: "$G, 0, $H |- A" and +zerol: "$G, 0, $H \ A" and (* RULES THAT DO NOT DIVIDE CONTEXT *) -derelict: "$F, A, $G |- C \ $F, !A, $G |- C" and +derelict: "$F, A, $G \ C \ $F, !A, $G \ C" and (* unfortunately, this one removes !A *) -contract: "$F, !A, !A, $G |- C \ $F, !A, $G |- C" and +contract: "$F, !A, !A, $G \ C \ $F, !A, $G \ C" and -weaken: "$F, $G |- C \ $G, !A, $F |- C" and +weaken: "$F, $G \ C \ $G, !A, $F \ C" and (* weak form of weakening, in practice just to clean context *) (* weaken and contract not needed (CHECK) *) -promote2: "promaux{ || $H || B} \ $H |- !B" and +promote2: "promaux{ || $H || B} \ $H \ !B" and promote1: "promaux{!A, $G || $H || B} \ promaux {$G || $H, !A || B}" and -promote0: "$G |- A \ promaux {$G || || A}" and +promote0: "$G \ A \ promaux {$G || || A}" and -tensl: "$H, A, B, $G |- C \ $H, A >< B, $G |- C" and +tensl: "$H, A, B, $G \ C \ $H, A >< B, $G \ C" and -impr: "A, $F |- B \ $F |- A -o B" and +impr: "A, $F \ B \ $F \ A -o B" and -conjr: "\$F |- A ; - $F |- B\ - \ $F |- (A && B)" and +conjr: "\$F \ A ; + $F \ B\ + \ $F \ (A && B)" and -conjll: "$G, A, $H |- C \ $G, A && B, $H |- C" and +conjll: "$G, A, $H \ C \ $G, A && B, $H \ C" and -conjlr: "$G, B, $H |- C \ $G, A && B, $H |- C" and +conjlr: "$G, B, $H \ C \ $G, A && B, $H \ C" and -disjrl: "$G |- A \ $G |- A ++ B" and -disjrr: "$G |- B \ $G |- A ++ B" and -disjl: "\$G, A, $H |- C ; - $G, B, $H |- C\ - \ $G, A ++ B, $H |- C" and +disjrl: "$G \ A \ $G \ A ++ B" and +disjrr: "$G \ B \ $G \ A ++ B" and +disjl: "\$G, A, $H \ C ; + $G, B, $H \ C\ + \ $G, A ++ B, $H \ C" and (* RULES THAT DIVIDE CONTEXT *) tensr: "\$F, $J :=: $G; - $F |- A ; - $J |- B\ - \ $G |- A >< B" and + $F \ A ; + $J \ B\ + \ $G \ A >< B" and impl: "\$G, $F :=: $J, $H ; - B, $F |- C ; - $G |- A\ - \ $J, A -o B, $H |- C" and + B, $F \ C ; + $G \ A\ + \ $J, A -o B, $H \ C" and cut: "\ $J1, $H1, $J2, $H3, $J3, $H2, $J4, $H4 :=: $F ; - $H1, $H2, $H3, $H4 |- A ; - $J1, $J2, A, $J3, $J4 |- B\ \ $F |- B" and + $H1, $H2, $H3, $H4 \ A ; + $J1, $J2, A, $J3, $J4 \ B\ \ $F \ B" and (* CONTEXT RULES *) @@ -150,7 +150,7 @@ zerol identity -lemma aux_impl: "$F, $G |- A \ $F, !(A -o B), $G |- B" +lemma aux_impl: "$F, $G \ A \ $F, !(A -o B), $G \ B" apply (rule derelict) apply (rule impl) apply (rule_tac [2] identity) @@ -158,16 +158,16 @@ apply assumption done -lemma conj_lemma: " $F, !A, !B, $G |- C \ $F, !(A && B), $G |- C" +lemma conj_lemma: " $F, !A, !B, $G \ C \ $F, !(A && B), $G \ C" apply (rule contract) apply (rule_tac A = " (!A) >< (!B) " in cut) apply (rule_tac [2] tensr) prefer 3 - apply (subgoal_tac "! (A && B) |- !A") + apply (subgoal_tac "! (A && B) \ !A") apply assumption apply best prefer 3 - apply (subgoal_tac "! (A && B) |- !B") + apply (subgoal_tac "! (A && B) \ !B") apply assumption apply best apply (rule_tac [2] context1) @@ -178,20 +178,20 @@ apply (rule context1) done -lemma impr_contract: "!A, !A, $G |- B \ $G |- (!A) -o B" +lemma impr_contract: "!A, !A, $G \ B \ $G \ (!A) -o B" apply (rule impr) apply (rule contract) apply assumption done -lemma impr_contr_der: "A, !A, $G |- B \ $G |- (!A) -o B" +lemma impr_contr_der: "A, !A, $G \ B \ $G \ (!A) -o B" apply (rule impr) apply (rule contract) apply (rule derelict) apply assumption done -lemma contrad1: "$F, (!B) -o 0, $G, !B, $H |- A" +lemma contrad1: "$F, (!B) -o 0, $G, !B, $H \ A" apply (rule impl) apply (rule_tac [3] identity) apply (rule context3) @@ -200,7 +200,7 @@ done -lemma contrad2: "$F, !B, $G, (!B) -o 0, $H |- A" +lemma contrad2: "$F, !B, $G, (!B) -o 0, $H \ A" apply (rule impl) apply (rule_tac [3] identity) apply (rule context3) @@ -208,14 +208,14 @@ apply (rule zerol) done -lemma ll_mp: "A -o B, A |- B" +lemma ll_mp: "A -o B, A \ B" apply (rule impl) apply (rule_tac [2] identity) apply (rule_tac [2] identity) apply (rule context1) done -lemma mp_rule1: "$F, B, $G, $H |- C \ $F, A, $G, A -o B, $H |- C" +lemma mp_rule1: "$F, B, $G, $H \ C \ $F, A, $G, A -o B, $H \ C" apply (rule_tac A = "B" in cut) apply (rule_tac [2] ll_mp) prefer 2 apply (assumption) @@ -224,7 +224,7 @@ apply (rule context1) done -lemma mp_rule2: "$F, B, $G, $H |- C \ $F, A -o B, $G, A, $H |- C" +lemma mp_rule2: "$F, B, $G, $H \ C \ $F, A -o B, $G, A, $H \ C" apply (rule_tac A = "B" in cut) apply (rule_tac [2] ll_mp) prefer 2 apply (assumption) @@ -233,11 +233,11 @@ apply (rule context1) done -lemma or_to_and: "!((!(A ++ B)) -o 0) |- !( ((!A) -o 0) && ((!B) -o 0))" +lemma or_to_and: "!((!(A ++ B)) -o 0) \ !( ((!A) -o 0) && ((!B) -o 0))" by best -lemma o_a_rule: "$F, !( ((!A) -o 0) && ((!B) -o 0)), $G |- C \ - $F, !((!(A ++ B)) -o 0), $G |- C" +lemma o_a_rule: "$F, !( ((!A) -o 0) && ((!B) -o 0)), $G \ C \ + $F, !((!(A ++ B)) -o 0), $G \ C" apply (rule cut) apply (rule_tac [2] or_to_and) prefer 2 apply (assumption) @@ -245,17 +245,17 @@ apply (rule context1) done -lemma conj_imp: "((!A) -o C) ++ ((!B) -o C) |- (!(A && B)) -o C" +lemma conj_imp: "((!A) -o C) ++ ((!B) -o C) \ (!(A && B)) -o C" apply (rule impr) apply (rule conj_lemma) apply (rule disjl) apply (rule mp_rule1, best)+ done -lemma not_imp: "!A, !((!B) -o 0) |- (!((!A) -o B)) -o 0" +lemma not_imp: "!A, !((!B) -o 0) \ (!((!A) -o B)) -o 0" by best -lemma a_not_a: "!A -o (!A -o 0) |- !A -o 0" +lemma a_not_a: "!A -o (!A -o 0) \ !A -o 0" apply (rule impr) apply (rule contract) apply (rule impl) @@ -264,7 +264,7 @@ apply best done -lemma a_not_a_rule: "$J1, !A -o 0, $J2 |- B \ $J1, !A -o (!A -o 0), $J2 |- B" +lemma a_not_a_rule: "$J1, !A -o 0, $J2 \ B \ $J1, !A -o (!A -o 0), $J2 \ B" apply (rule_tac A = "!A -o 0" in cut) apply (rule_tac [2] a_not_a) prefer 2 apply assumption @@ -294,17 +294,17 @@ (* Some examples from Troelstra and van Dalen *) -lemma "!((!A) -o ((!B) -o 0)) |- (!(A && B)) -o 0" +lemma "!((!A) -o ((!B) -o 0)) \ (!(A && B)) -o 0" by best_safe -lemma "!((!(A && B)) -o 0) |- !((!A) -o ((!B) -o 0))" +lemma "!((!(A && B)) -o 0) \ !((!A) -o ((!B) -o 0))" by best_safe -lemma "!( (!((! ((!A) -o B) ) -o 0)) -o 0) |- +lemma "!( (!((! ((!A) -o B) ) -o 0)) -o 0) \ (!A) -o ( (! ((!B) -o 0)) -o 0)" by best_safe -lemma "!( (!A) -o ( (! ((!B) -o 0)) -o 0) ) |- +lemma "!( (!A) -o ( (! ((!B) -o 0)) -o 0) ) \ (!((! ((!A) -o B) ) -o 0)) -o 0" by best_power diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/ILL_predlog.thy --- a/src/Sequents/ILL_predlog.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/ILL_predlog.thy Sat Oct 10 20:54:44 2015 +0200 @@ -30,100 +30,100 @@ (* from [kleene 52] pp 118,119 *) -lemma k49a: "|- [* A > ( - ( - A)) *]" +lemma k49a: "\ [* A > ( - ( - A)) *]" by best_safe -lemma k49b: "|- [*( - ( - ( - A))) = ( - A)*]" +lemma k49b: "\ [*( - ( - ( - A))) = ( - A)*]" by best_safe -lemma k49c: "|- [* (A | - A) > ( - - A = A) *]" +lemma k49c: "\ [* (A | - A) > ( - - A = A) *]" by best_safe -lemma k50a: "|- [* - (A = - A) *]" +lemma k50a: "\ [* - (A = - A) *]" by best_power -lemma k51a: "|- [* - - (A | - A) *]" +lemma k51a: "\ [* - - (A | - A) *]" by best_safe -lemma k51b: "|- [* - - (- - A > A) *]" +lemma k51b: "\ [* - - (- - A > A) *]" by best_power -lemma k56a: "|- [* (A | B) > - (- A & - B) *]" +lemma k56a: "\ [* (A | B) > - (- A & - B) *]" by best_safe -lemma k56b: "|- [* (-A | B) > - (A & -B) *]" +lemma k56b: "\ [* (-A | B) > - (A & -B) *]" by best_safe -lemma k57a: "|- [* (A & B) > - (-A | -B) *]" +lemma k57a: "\ [* (A & B) > - (-A | -B) *]" by best_safe -lemma k57b: "|- [* (A & -B) > -(-A | B) *]" +lemma k57b: "\ [* (A & -B) > -(-A | B) *]" by best_power -lemma k58a: "|- [* (A > B) > - (A & -B) *]" +lemma k58a: "\ [* (A > B) > - (A & -B) *]" by best_safe -lemma k58b: "|- [* (A > -B) = -(A & B) *]" +lemma k58b: "\ [* (A > -B) = -(A & B) *]" by best_safe -lemma k58c: "|- [* - (A & B) = (- - A > - B) *]" +lemma k58c: "\ [* - (A & B) = (- - A > - B) *]" by best_safe -lemma k58d: "|- [* (- - A > - B) = - - (-A | -B) *]" +lemma k58d: "\ [* (- - A > - B) = - - (-A | -B) *]" by best_safe -lemma k58e: "! [* - -B > B *] |- [* (- -A > B) = (A > B) *]" +lemma k58e: "! [* - -B > B *] \ [* (- -A > B) = (A > B) *]" by best_safe -lemma k58f: "! [* - -B > B *] |- [* (A > B) = - (A & -B) *]" +lemma k58f: "! [* - -B > B *] \ [* (A > B) = - (A & -B) *]" by best_safe -lemma k58g: "|- [* (- -A > B) > - (A & -B) *]" +lemma k58g: "\ [* (- -A > B) > - (A & -B) *]" by best_safe -lemma k59a: "|- [* (-A | B) > (A > B) *]" +lemma k59a: "\ [* (-A | B) > (A > B) *]" by best_safe -lemma k59b: "|- [* (A > B) > - - (-A | B) *]" +lemma k59b: "\ [* (A > B) > - - (-A | B) *]" by best_power -lemma k59c: "|- [* (-A > B) > - -(A | B) *]" +lemma k59c: "\ [* (-A > B) > - -(A | B) *]" by best_power -lemma k60a: "|- [* (A & B) > - (A > -B) *]" +lemma k60a: "\ [* (A & B) > - (A > -B) *]" by best_safe -lemma k60b: "|- [* (A & -B) > - (A > B) *]" +lemma k60b: "\ [* (A & -B) > - (A > B) *]" by best_safe -lemma k60c: "|- [* ( - - A & B) > - (A > -B) *]" +lemma k60c: "\ [* ( - - A & B) > - (A > -B) *]" by best_safe -lemma k60d: "|- [* (- - A & - B) = - (A > B) *]" +lemma k60d: "\ [* (- - A & - B) = - (A > B) *]" by best_safe -lemma k60e: "|- [* - (A > B) = - (-A | B) *]" +lemma k60e: "\ [* - (A > B) = - (-A | B) *]" by best_safe -lemma k60f: "|- [* - (-A | B) = - - (A & -B) *]" +lemma k60f: "\ [* - (-A | B) = - - (A & -B) *]" by best_safe -lemma k60g: "|- [* - - (A > B) = - (A & -B) *]" +lemma k60g: "\ [* - - (A > B) = - (A & -B) *]" by best_power -lemma k60h: "|- [* - (A & -B) = (A > - -B) *]" +lemma k60h: "\ [* - (A & -B) = (A > - -B) *]" by best_safe -lemma k60i: "|- [* (A > - -B) = (- -A > - -B) *]" +lemma k60i: "\ [* (A > - -B) = (- -A > - -B) *]" by best_safe -lemma k61a: "|- [* (A | B) > (-A > B) *]" +lemma k61a: "\ [* (A | B) > (-A > B) *]" by best_safe -lemma k61b: "|- [* - (A | B) = - (-A > B) *]" +lemma k61b: "\ [* - (A | B) = - (-A > B) *]" by best_power -lemma k62a: "|- [* (-A | -B) > - (A & B) *]" +lemma k62a: "\ [* (-A | -B) > - (A & B) *]" by best_safe end diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK.thy --- a/src/Sequents/LK.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK.thy Sat Oct 10 20:54:44 2015 +0200 @@ -3,7 +3,7 @@ Copyright 1993 University of Cambridge Axiom to express monotonicity (a variant of the deduction theorem). Makes the -link between |- and \, needed for instance to prove imp_cong. +link between \ and \, needed for instance to prove imp_cong. Axiom left_cong allows the simplifier to use left-side formulas. Ideally it should be derived from lower-level axioms. @@ -17,65 +17,65 @@ begin axiomatization where - monotonic: "($H |- P \ $H |- Q) \ $H, P |- Q" and + monotonic: "($H \ P \ $H \ Q) \ $H, P \ Q" and - left_cong: "\P == P'; |- P' \ ($H |- $F) \ ($H' |- $F')\ - \ (P, $H |- $F) \ (P', $H' |- $F')" + left_cong: "\P == P'; \ P' \ ($H \ $F) \ ($H' \ $F')\ + \ (P, $H \ $F) \ (P', $H' \ $F')" subsection \Rewrite rules\ lemma conj_simps: - "|- P \ True \ P" - "|- True \ P \ P" - "|- P \ False \ False" - "|- False \ P \ False" - "|- P \ P \ P" - "|- P \ P \ Q \ P \ Q" - "|- P \ \ P \ False" - "|- \ P \ P \ False" - "|- (P \ Q) \ R \ P \ (Q \ R)" + "\ P \ True \ P" + "\ True \ P \ P" + "\ P \ False \ False" + "\ False \ P \ False" + "\ P \ P \ P" + "\ P \ P \ Q \ P \ Q" + "\ P \ \ P \ False" + "\ \ P \ P \ False" + "\ (P \ Q) \ R \ P \ (Q \ R)" by (fast add!: subst)+ lemma disj_simps: - "|- P \ True \ True" - "|- True \ P \ True" - "|- P \ False \ P" - "|- False \ P \ P" - "|- P \ P \ P" - "|- P \ P \ Q \ P \ Q" - "|- (P \ Q) \ R \ P \ (Q \ R)" + "\ P \ True \ True" + "\ True \ P \ True" + "\ P \ False \ P" + "\ False \ P \ P" + "\ P \ P \ P" + "\ P \ P \ Q \ P \ Q" + "\ (P \ Q) \ R \ P \ (Q \ R)" by (fast add!: subst)+ lemma not_simps: - "|- \ False \ True" - "|- \ True \ False" + "\ \ False \ True" + "\ \ True \ False" by (fast add!: subst)+ lemma imp_simps: - "|- (P \ False) \ \ P" - "|- (P \ True) \ True" - "|- (False \ P) \ True" - "|- (True \ P) \ P" - "|- (P \ P) \ True" - "|- (P \ \ P) \ \ P" + "\ (P \ False) \ \ P" + "\ (P \ True) \ True" + "\ (False \ P) \ True" + "\ (True \ P) \ P" + "\ (P \ P) \ True" + "\ (P \ \ P) \ \ P" by (fast add!: subst)+ lemma iff_simps: - "|- (True \ P) \ P" - "|- (P \ True) \ P" - "|- (P \ P) \ True" - "|- (False \ P) \ \ P" - "|- (P \ False) \ \ P" + "\ (True \ P) \ P" + "\ (P \ True) \ P" + "\ (P \ P) \ True" + "\ (False \ P) \ \ P" + "\ (P \ False) \ \ P" by (fast add!: subst)+ lemma quant_simps: - "\P. |- (\x. P) \ P" - "\P. |- (\x. x = t \ P(x)) \ P(t)" - "\P. |- (\x. t = x \ P(x)) \ P(t)" - "\P. |- (\x. P) \ P" - "\P. |- (\x. x = t \ P(x)) \ P(t)" - "\P. |- (\x. t = x \ P(x)) \ P(t)" + "\P. \ (\x. P) \ P" + "\P. \ (\x. x = t \ P(x)) \ P(t)" + "\P. \ (\x. t = x \ P(x)) \ P(t)" + "\P. \ (\x. P) \ P" + "\P. \ (\x. x = t \ P(x)) \ P(t)" + "\P. \ (\x. t = x \ P(x)) \ P(t)" by (fast add!: subst)+ @@ -89,39 +89,39 @@ text \existential miniscoping\ lemma ex_simps: - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" by (fast add!: subst)+ text \universal miniscoping\ lemma all_simps: - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" - "\P Q. |- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" - "\P Q. |- (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" + "\P Q. \ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" + "\P Q. \ (\x. P \ Q(x)) \ P \ (\x. Q(x))" by (fast add!: subst)+ text \These are NOT supplied by default!\ lemma distrib_simps: - "|- P \ (Q \ R) \ P \ Q \ P \ R" - "|- (Q \ R) \ P \ Q \ P \ R \ P" - "|- (P \ Q \ R) \ (P \ R) \ (Q \ R)" + "\ P \ (Q \ R) \ P \ Q \ P \ R" + "\ (Q \ R) \ P \ Q \ P \ R \ P" + "\ (P \ Q \ R) \ (P \ R) \ (Q \ R)" by (fast add!: subst)+ -lemma P_iff_F: "|- \ P \ |- (P \ False)" +lemma P_iff_F: "\ \ P \ \ (P \ False)" apply (erule thinR [THEN cut]) apply fast done lemmas iff_reflection_F = P_iff_F [THEN iff_reflection] -lemma P_iff_T: "|- P \ |- (P \ True)" +lemma P_iff_T: "\ P \ \ (P \ True)" apply (erule thinR [THEN cut]) apply fast done @@ -130,51 +130,51 @@ lemma LK_extra_simps: - "|- P \ \ P" - "|- \ P \ P" - "|- \ \ P \ P" - "|- (\ P \ P) \ P" - "|- (\ P \ \ Q) \ (P \ Q)" + "\ P \ \ P" + "\ \ P \ P" + "\ \ \ P \ P" + "\ (\ P \ P) \ P" + "\ (\ P \ \ Q) \ (P \ Q)" by (fast add!: subst)+ subsection \Named rewrite rules\ -lemma conj_commute: "|- P \ Q \ Q \ P" - and conj_left_commute: "|- P \ (Q \ R) \ Q \ (P \ R)" +lemma conj_commute: "\ P \ Q \ Q \ P" + and conj_left_commute: "\ P \ (Q \ R) \ Q \ (P \ R)" by (fast add!: subst)+ lemmas conj_comms = conj_commute conj_left_commute -lemma disj_commute: "|- P \ Q \ Q \ P" - and disj_left_commute: "|- P \ (Q \ R) \ Q \ (P \ R)" +lemma disj_commute: "\ P \ Q \ Q \ P" + and disj_left_commute: "\ P \ (Q \ R) \ Q \ (P \ R)" by (fast add!: subst)+ lemmas disj_comms = disj_commute disj_left_commute -lemma conj_disj_distribL: "|- P \ (Q \ R) \ (P \ Q \ P \ R)" - and conj_disj_distribR: "|- (P \ Q) \ R \ (P \ R \ Q \ R)" +lemma conj_disj_distribL: "\ P \ (Q \ R) \ (P \ Q \ P \ R)" + and conj_disj_distribR: "\ (P \ Q) \ R \ (P \ R \ Q \ R)" - and disj_conj_distribL: "|- P \ (Q \ R) \ (P \ Q) \ (P \ R)" - and disj_conj_distribR: "|- (P \ Q) \ R \ (P \ R) \ (Q \ R)" + and disj_conj_distribL: "\ P \ (Q \ R) \ (P \ Q) \ (P \ R)" + and disj_conj_distribR: "\ (P \ Q) \ R \ (P \ R) \ (Q \ R)" - and imp_conj_distrib: "|- (P \ (Q \ R)) \ (P \ Q) \ (P \ R)" - and imp_conj: "|- ((P \ Q) \ R) \ (P \ (Q \ R))" - and imp_disj: "|- (P \ Q \ R) \ (P \ R) \ (Q \ R)" + and imp_conj_distrib: "\ (P \ (Q \ R)) \ (P \ Q) \ (P \ R)" + and imp_conj: "\ ((P \ Q) \ R) \ (P \ (Q \ R))" + and imp_disj: "\ (P \ Q \ R) \ (P \ R) \ (Q \ R)" - and imp_disj1: "|- (P \ Q) \ R \ (P \ Q \ R)" - and imp_disj2: "|- Q \ (P \ R) \ (P \ Q \ R)" + and imp_disj1: "\ (P \ Q) \ R \ (P \ Q \ R)" + and imp_disj2: "\ Q \ (P \ R) \ (P \ Q \ R)" - and de_Morgan_disj: "|- (\ (P \ Q)) \ (\ P \ \ Q)" - and de_Morgan_conj: "|- (\ (P \ Q)) \ (\ P \ \ Q)" + and de_Morgan_disj: "\ (\ (P \ Q)) \ (\ P \ \ Q)" + and de_Morgan_conj: "\ (\ (P \ Q)) \ (\ P \ \ Q)" - and not_iff: "|- \ (P \ Q) \ (P \ \ Q)" + and not_iff: "\ \ (P \ Q) \ (P \ \ Q)" by (fast add!: subst)+ lemma imp_cong: - assumes p1: "|- P \ P'" - and p2: "|- P' \ |- Q \ Q'" - shows "|- (P \ Q) \ (P' \ Q')" + assumes p1: "\ P \ P'" + and p2: "\ P' \ \ Q \ Q'" + shows "\ (P \ Q) \ (P' \ Q')" apply (lem p1) apply safe apply (tactic \ @@ -185,9 +185,9 @@ done lemma conj_cong: - assumes p1: "|- P \ P'" - and p2: "|- P' \ |- Q \ Q'" - shows "|- (P \ Q) \ (P' \ Q')" + assumes p1: "\ P \ P'" + and p2: "\ P' \ \ Q \ Q'" + shows "\ (P \ Q) \ (P' \ Q')" apply (lem p1) apply safe apply (tactic \ @@ -197,7 +197,7 @@ Cla.safe_tac @{context} 1)\) done -lemma eq_sym_conv: "|- x = y \ y = x" +lemma eq_sym_conv: "\ x = y \ y = x" by (fast add!: subst) ML_file "simpdata.ML" @@ -207,10 +207,10 @@ text \To create substition rules\ -lemma eq_imp_subst: "|- a = b \ $H, A(a), $G |- $E, A(b), $F" +lemma eq_imp_subst: "\ a = b \ $H, A(a), $G \ $E, A(b), $F" by simp -lemma split_if: "|- P(if Q then x else y) \ ((Q \ P(x)) \ (\ Q \ P(y)))" +lemma split_if: "\ P(if Q then x else y) \ ((Q \ P(x)) \ (\ Q \ P(y)))" apply (rule_tac P = Q in cut) prefer 2 apply (simp add: if_P) @@ -220,12 +220,12 @@ apply fast done -lemma if_cancel: "|- (if P then x else x) = x" +lemma if_cancel: "\ (if P then x else x) = x" apply (lem split_if) apply fast done -lemma if_eq_cancel: "|- (if x = y then y else x) = x" +lemma if_eq_cancel: "\ (if x = y then y else x) = x" apply (lem split_if) apply safe apply (rule symL) diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK/Hard_Quantifiers.thy --- a/src/Sequents/LK/Hard_Quantifiers.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK/Hard_Quantifiers.thy Sat Oct 10 20:54:44 2015 +0200 @@ -15,68 +15,68 @@ imports "../LK" begin -lemma "|- (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" +lemma "\ (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" by fast -lemma "|- (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" +lemma "\ (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" by fast -lemma "|- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" +lemma "\ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" by fast -lemma "|- (\x. P(x)) \ Q \ (\x. P(x) \ Q)" +lemma "\ (\x. P(x)) \ Q \ (\x. P(x) \ Q)" by fast text "Problems requiring quantifier duplication" (*Not provable by fast: needs multiple instantiation of \*) -lemma "|- (\x. P(x) \ P(f(x))) \ P(d) \ P(f(f(f(d))))" +lemma "\ (\x. P(x) \ P(f(x))) \ P(d) \ P(f(f(f(d))))" by best_dup (*Needs double instantiation of the quantifier*) -lemma "|- \x. P(x) \ P(a) \ P(b)" +lemma "\ \x. P(x) \ P(a) \ P(b)" by fast_dup -lemma "|- \z. P(z) \ (\x. P(x))" +lemma "\ \z. P(z) \ (\x. P(x))" by best_dup text "Hard examples with quantifiers" text "Problem 18" -lemma "|- \y. \x. P(y)\P(x)" +lemma "\ \y. \x. P(y)\P(x)" by best_dup text "Problem 19" -lemma "|- \x. \y z. (P(y)\Q(z)) \ (P(x)\Q(x))" +lemma "\ \x. \y z. (P(y)\Q(z)) \ (P(x)\Q(x))" by best_dup text "Problem 20" -lemma "|- (\x y. \z. \w. (P(x) \ Q(y)\R(z) \ S(w))) +lemma "\ (\x y. \z. \w. (P(x) \ Q(y)\R(z) \ S(w))) \ (\x y. P(x) \ Q(y)) \ (\z. R(z))" by fast text "Problem 21" -lemma "|- (\x. P \ Q(x)) \ (\x. Q(x) \ P) \ (\x. P \ Q(x))" +lemma "\ (\x. P \ Q(x)) \ (\x. Q(x) \ P) \ (\x. P \ Q(x))" by best_dup text "Problem 22" -lemma "|- (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" +lemma "\ (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" by fast text "Problem 23" -lemma "|- (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" +lemma "\ (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" by best text "Problem 24" -lemma "|- \ (\x. S(x) \ Q(x)) \ (\x. P(x) \ Q(x) \ R(x)) \ +lemma "\ \ (\x. S(x) \ Q(x)) \ (\x. P(x) \ Q(x) \ R(x)) \ \ (\x. P(x)) \ (\x. Q(x)) \ (\x. Q(x) \ R(x) \ S(x)) \ (\x. P(x) \ R(x))" by pc text "Problem 25" -lemma "|- (\x. P(x)) \ +lemma "\ (\x. P(x)) \ (\x. L(x) \ \ (M(x) \ R(x))) \ (\x. P(x) \ (M(x) \ L(x))) \ ((\x. P(x)\Q(x)) \ (\x. P(x) \ R(x))) @@ -84,13 +84,13 @@ by best text "Problem 26" -lemma "|- ((\x. p(x)) \ (\x. q(x))) \ +lemma "\ ((\x. p(x)) \ (\x. q(x))) \ (\x. \y. p(x) \ q(y) \ (r(x) \ s(y))) \ ((\x. p(x)\r(x)) \ (\x. q(x)\s(x)))" by pc text "Problem 27" -lemma "|- (\x. P(x) \ \ Q(x)) \ +lemma "\ (\x. P(x) \ \ Q(x)) \ (\x. P(x) \ R(x)) \ (\x. M(x) \ L(x) \ P(x)) \ ((\x. R(x) \ \ Q(x)) \ (\x. L(x) \ \ R(x))) @@ -98,57 +98,57 @@ by pc text "Problem 28. AMENDED" -lemma "|- (\x. P(x) \ (\x. Q(x))) \ +lemma "\ (\x. P(x) \ (\x. Q(x))) \ ((\x. Q(x) \ R(x)) \ (\x. Q(x) \ S(x))) \ ((\x. S(x)) \ (\x. L(x) \ M(x))) \ (\x. P(x) \ L(x) \ M(x))" by pc text "Problem 29. Essentially the same as Principia Mathematica *11.71" -lemma "|- (\x. P(x)) \ (\y. Q(y)) +lemma "\ (\x. P(x)) \ (\y. Q(y)) \ ((\x. P(x) \ R(x)) \ (\y. Q(y) \ S(y)) \ (\x y. P(x) \ Q(y) \ R(x) \ S(y)))" by pc text "Problem 30" -lemma "|- (\x. P(x) \ Q(x) \ \ R(x)) \ +lemma "\ (\x. P(x) \ Q(x) \ \ R(x)) \ (\x. (Q(x) \ \ S(x)) \ P(x) \ R(x)) \ (\x. S(x))" by fast text "Problem 31" -lemma "|- \ (\x. P(x) \ (Q(x) \ R(x))) \ +lemma "\ \ (\x. P(x) \ (Q(x) \ R(x))) \ (\x. L(x) \ P(x)) \ (\x. \ R(x) \ M(x)) \ (\x. L(x) \ M(x))" by fast text "Problem 32" -lemma "|- (\x. P(x) \ (Q(x) \ R(x)) \ S(x)) \ +lemma "\ (\x. P(x) \ (Q(x) \ R(x)) \ S(x)) \ (\x. S(x) \ R(x) \ L(x)) \ (\x. M(x) \ R(x)) \ (\x. P(x) \ M(x) \ L(x))" by best text "Problem 33" -lemma "|- (\x. P(a) \ (P(x) \ P(b)) \ P(c)) \ +lemma "\ (\x. P(a) \ (P(x) \ P(b)) \ P(c)) \ (\x. (\ P(a) \ P(x) \ P(c)) \ (\ P(a) \ \ P(b) \ P(c)))" by fast text "Problem 34 AMENDED (TWICE!!)" (*Andrews's challenge*) -lemma "|- ((\x. \y. p(x) \ p(y)) \ +lemma "\ ((\x. \y. p(x) \ p(y)) \ ((\x. q(x)) \ (\y. p(y)))) \ ((\x. \y. q(x) \ q(y)) \ ((\x. p(x)) \ (\y. q(y))))" by best_dup text "Problem 35" -lemma "|- \x y. P(x,y) \ (\u v. P(u,v))" +lemma "\ \x y. P(x,y) \ (\u v. P(u,v))" by best_dup text "Problem 36" -lemma "|- (\x. \y. J(x,y)) \ +lemma "\ (\x. \y. J(x,y)) \ (\x. \y. G(x,y)) \ (\x y. J(x,y) \ G(x,y) \ (\z. J(y,z) \ G(y,z) \ H(x,z))) @@ -156,7 +156,7 @@ by fast text "Problem 37" -lemma "|- (\z. \w. \x. \y. +lemma "\ (\z. \w. \x. \y. (P(x,z)\P(y,w)) \ P(y,z) \ (P(y,w) \ (\u. Q(u,w)))) \ (\x z. \ P(x,z) \ (\y. Q(y,z))) \ ((\x y. Q(x,y)) \ (\x. R(x,x))) @@ -164,7 +164,7 @@ by pc text "Problem 38" -lemma "|- (\x. p(a) \ (p(x) \ (\y. p(y) \ r(x,y))) \ +lemma "\ (\x. p(a) \ (p(x) \ (\y. p(y) \ r(x,y))) \ (\z. \w. p(z) \ r(x,w) \ r(w,z))) \ (\x. (\ p(a) \ p(x) \ (\z. \w. p(z) \ r(x,w) \ r(w,z))) \ (\ p(a) \ \ (\y. p(y) \ r(x,y)) \ @@ -172,37 +172,37 @@ by pc text "Problem 39" -lemma "|- \ (\x. \y. F(y,x) \ \ F(y,y))" +lemma "\ \ (\x. \y. F(y,x) \ \ F(y,y))" by fast text "Problem 40. AMENDED" -lemma "|- (\y. \x. F(x,y) \ F(x,x)) \ +lemma "\ (\y. \x. F(x,y) \ F(x,x)) \ \ (\x. \y. \z. F(z,y) \ \ F(z,x))" by fast text "Problem 41" -lemma "|- (\z. \y. \x. f(x,y) \ f(x,z) \ \ f(x,x)) +lemma "\ (\z. \y. \x. f(x,y) \ f(x,z) \ \ f(x,x)) \ \ (\z. \x. f(x,z))" by fast text "Problem 42" -lemma "|- \ (\y. \x. p(x,y) \ \ (\z. p(x,z) \ p(z,x)))" +lemma "\ \ (\y. \x. p(x,y) \ \ (\z. p(x,z) \ p(z,x)))" oops text "Problem 43" -lemma "|- (\x. \y. q(x,y) \ (\z. p(z,x) \ p(z,y))) +lemma "\ (\x. \y. q(x,y) \ (\z. p(z,x) \ p(z,y))) \ (\x. (\y. q(x,y) \ q(y,x)))" oops text "Problem 44" -lemma "|- (\x. f(x) \ +lemma "\ (\x. f(x) \ (\y. g(y) \ h(x,y) \ (\y. g(y) \ \ h(x,y)))) \ (\x. j(x) \ (\y. g(y) \ h(x,y))) \ (\x. j(x) \ \ f(x))" by fast text "Problem 45" -lemma "|- (\x. f(x) \ (\y. g(y) \ h(x,y) \ j(x,y)) +lemma "\ (\x. f(x) \ (\y. g(y) \ h(x,y) \ j(x,y)) \ (\y. g(y) \ h(x,y) \ k(y))) \ \ (\y. l(y) \ k(y)) \ (\x. f(x) \ (\y. h(x,y) \ l(y)) @@ -214,50 +214,50 @@ text "Problems (mainly) involving equality or functions" text "Problem 48" -lemma "|- (a = b \ c = d) \ (a = c \ b = d) \ a = d \ b = c" +lemma "\ (a = b \ c = d) \ (a = c \ b = d) \ a = d \ b = c" by (fast add!: subst) text "Problem 50" -lemma "|- (\x. P(a,x) \ (\y. P(x,y))) \ (\x. \y. P(x,y))" +lemma "\ (\x. P(a,x) \ (\y. P(x,y))) \ (\x. \y. P(x,y))" by best_dup text "Problem 51" -lemma "|- (\z w. \x y. P(x,y) \ (x = z \ y = w)) \ +lemma "\ (\z w. \x y. P(x,y) \ (x = z \ y = w)) \ (\z. \x. \w. (\y. P(x,y) \ y = w) \ x = z)" by (fast add!: subst) text "Problem 52" (*Almost the same as 51. *) -lemma "|- (\z w. \x y. P(x,y) \ (x = z \ y = w)) \ +lemma "\ (\z w. \x y. P(x,y) \ (x = z \ y = w)) \ (\w. \y. \z. (\x. P(x,y) \ x = z) \ y = w)" by (fast add!: subst) text "Problem 56" -lemma "|- (\x.(\y. P(y) \ x = f(y)) \ P(x)) \ (\x. P(x) \ P(f(x)))" +lemma "\ (\x.(\y. P(y) \ x = f(y)) \ P(x)) \ (\x. P(x) \ P(f(x)))" by (best add: symL subst) (*requires tricker to orient the equality properly*) text "Problem 57" -lemma "|- P(f(a,b), f(b,c)) \ P(f(b,c), f(a,c)) \ +lemma "\ P(f(a,b), f(b,c)) \ P(f(b,c), f(a,c)) \ (\x y z. P(x,y) \ P(y,z) \ P(x,z)) \ P(f(a,b), f(a,c))" by fast text "Problem 58!" -lemma "|- (\x y. f(x) = g(y)) \ (\x y. f(f(x)) = f(g(y)))" +lemma "\ (\x y. f(x) = g(y)) \ (\x y. f(f(x)) = f(g(y)))" by (fast add!: subst) text "Problem 59" (*Unification works poorly here -- the abstraction %sobj prevents efficient operation of the occurs check*) -lemma "|- (\x. P(x) \ \ P(f(x))) \ (\x. P(x) \ \ P(f(x)))" +lemma "\ (\x. P(x) \ \ P(f(x))) \ (\x. P(x) \ \ P(f(x)))" by best_dup text "Problem 60" -lemma "|- \x. P(x,f(x)) \ (\y. (\z. P(z,y) \ P(z,f(x))) \ P(x,y))" +lemma "\ \x. P(x,f(x)) \ (\y. (\z. P(z,y) \ P(z,f(x))) \ P(x,y))" by fast text "Problem 62 as corrected in JAR 18 (1997), page 135" -lemma "|- (\x. p(a) \ (p(x) \ p(f(x))) \ p(f(f(x)))) \ +lemma "\ (\x. p(a) \ (p(x) \ p(f(x))) \ p(f(f(x)))) \ (\x. (\ p(a) \ p(x) \ p(f(f(x)))) \ (\ p(a) \ \ p(f(x)) \ p(f(f(x)))))" by fast diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK/Nat.thy --- a/src/Sequents/LK/Nat.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK/Nat.thy Sat Oct 10 20:54:44 2015 +0200 @@ -17,13 +17,13 @@ Suc :: "nat \ nat" and rec :: "[nat, 'a, [nat,'a] \ 'a] \ 'a" where - induct: "\$H |- $E, P(0), $F; - \x. $H, P(x) |- $E, P(Suc(x)), $F\ \ $H |- $E, P(n), $F" and + induct: "\$H \ $E, P(0), $F; + \x. $H, P(x) \ $E, P(Suc(x)), $F\ \ $H \ $E, P(n), $F" and - Suc_inject: "|- Suc(m) = Suc(n) \ m = n" and - Suc_neq_0: "|- Suc(m) \ 0" and - rec_0: "|- rec(0,a,f) = a" and - rec_Suc: "|- rec(Suc(m), a, f) = f(m, rec(m,a,f))" + Suc_inject: "\ Suc(m) = Suc(n) \ m = n" and + Suc_neq_0: "\ Suc(m) \ 0" and + rec_0: "\ rec(0,a,f) = a" and + rec_Suc: "\ rec(Suc(m), a, f) = f(m, rec(m,a,f))" definition add :: "[nat, nat] \ nat" (infixl "+" 60) where "m + n == rec(m, n, \x y. Suc(y))" @@ -31,43 +31,43 @@ declare Suc_neq_0 [simp] -lemma Suc_inject_rule: "$H, $G, m = n |- $E \ $H, Suc(m) = Suc(n), $G |- $E" +lemma Suc_inject_rule: "$H, $G, m = n \ $E \ $H, Suc(m) = Suc(n), $G \ $E" by (rule L_of_imp [OF Suc_inject]) -lemma Suc_n_not_n: "|- Suc(k) \ k" +lemma Suc_n_not_n: "\ Suc(k) \ k" apply (rule_tac n = k in induct) apply simp apply (fast add!: Suc_inject_rule) done -lemma add_0: "|- 0 + n = n" +lemma add_0: "\ 0 + n = n" apply (unfold add_def) apply (rule rec_0) done -lemma add_Suc: "|- Suc(m) + n = Suc(m + n)" +lemma add_Suc: "\ Suc(m) + n = Suc(m + n)" apply (unfold add_def) apply (rule rec_Suc) done declare add_0 [simp] add_Suc [simp] -lemma add_assoc: "|- (k + m) + n = k + (m + n)" +lemma add_assoc: "\ (k + m) + n = k + (m + n)" apply (rule_tac n = "k" in induct) apply simp_all done -lemma add_0_right: "|- m + 0 = m" +lemma add_0_right: "\ m + 0 = m" apply (rule_tac n = "m" in induct) apply simp_all done -lemma add_Suc_right: "|- m + Suc(n) = Suc(m + n)" +lemma add_Suc_right: "\ m + Suc(n) = Suc(m + n)" apply (rule_tac n = "m" in induct) apply simp_all done -lemma "(\n. |- f(Suc(n)) = Suc(f(n))) \ |- f(i + j) = i + f(j)" +lemma "(\n. \ f(Suc(n)) = Suc(f(n))) \ \ f(i + j) = i + f(j)" apply (rule_tac n = "i" in induct) apply simp_all done diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK/Propositional.thy --- a/src/Sequents/LK/Propositional.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK/Propositional.thy Sat Oct 10 20:54:44 2015 +0200 @@ -11,73 +11,73 @@ text "absorptive laws of \ and \" -lemma "|- P \ P \ P" +lemma "\ P \ P \ P" by fast_prop -lemma "|- P \ P \ P" +lemma "\ P \ P \ P" by fast_prop text "commutative laws of \ and \" -lemma "|- P \ Q \ Q \ P" +lemma "\ P \ Q \ Q \ P" by fast_prop -lemma "|- P \ Q \ Q \ P" +lemma "\ P \ Q \ Q \ P" by fast_prop text "associative laws of \ and \" -lemma "|- (P \ Q) \ R \ P \ (Q \ R)" +lemma "\ (P \ Q) \ R \ P \ (Q \ R)" by fast_prop -lemma "|- (P \ Q) \ R \ P \ (Q \ R)" +lemma "\ (P \ Q) \ R \ P \ (Q \ R)" by fast_prop text "distributive laws of \ and \" -lemma "|- (P \ Q) \ R \ (P \ R) \ (Q \ R)" +lemma "\ (P \ Q) \ R \ (P \ R) \ (Q \ R)" by fast_prop -lemma "|- (P \ Q) \ R \ (P \ R) \ (Q \ R)" +lemma "\ (P \ Q) \ R \ (P \ R) \ (Q \ R)" by fast_prop text "Laws involving implication" -lemma "|- (P \ Q \ R) \ (P \ R) \ (Q \ R)" +lemma "\ (P \ Q \ R) \ (P \ R) \ (Q \ R)" by fast_prop -lemma "|- (P \ Q \ R) \ (P \ (Q \ R))" +lemma "\ (P \ Q \ R) \ (P \ (Q \ R))" by fast_prop -lemma "|- (P \ Q \ R) \ (P \ Q) \ (P \ R)" +lemma "\ (P \ Q \ R) \ (P \ Q) \ (P \ R)" by fast_prop text "Classical theorems" -lemma "|- P \ Q \ P \ \ P \ Q" +lemma "\ P \ Q \ P \ \ P \ Q" by fast_prop -lemma "|- (P \ Q) \ (\ P \ R) \ (P \ Q \ R)" +lemma "\ (P \ Q) \ (\ P \ R) \ (P \ Q \ R)" by fast_prop -lemma "|- P \ Q \ \ P \ R \ (P \ Q) \ (\ P \ R)" +lemma "\ P \ Q \ \ P \ R \ (P \ Q) \ (\ P \ R)" by fast_prop -lemma "|- (P \ Q) \ (P \ R) \ (P \ Q \ R)" +lemma "\ (P \ Q) \ (P \ R) \ (P \ Q \ R)" by fast_prop (*If and only if*) -lemma "|- (P \ Q) \ (Q \ P)" +lemma "\ (P \ Q) \ (Q \ P)" by fast_prop -lemma "|- \ (P \ \ P)" +lemma "\ \ (P \ \ P)" by fast_prop @@ -89,71 +89,71 @@ *) (*1*) -lemma "|- (P \ Q) \ (\ Q \ \ P)" +lemma "\ (P \ Q) \ (\ Q \ \ P)" by fast_prop (*2*) -lemma "|- \ \ P \ P" +lemma "\ \ \ P \ P" by fast_prop (*3*) -lemma "|- \ (P \ Q) \ (Q \ P)" +lemma "\ \ (P \ Q) \ (Q \ P)" by fast_prop (*4*) -lemma "|- (\ P \ Q) \ (\ Q \ P)" +lemma "\ (\ P \ Q) \ (\ Q \ P)" by fast_prop (*5*) -lemma "|- ((P \ Q) \ (P \ R)) \ (P \ (Q \ R))" +lemma "\ ((P \ Q) \ (P \ R)) \ (P \ (Q \ R))" by fast_prop (*6*) -lemma "|- P \ \ P" +lemma "\ P \ \ P" by fast_prop (*7*) -lemma "|- P \ \ \ \ P" +lemma "\ P \ \ \ \ P" by fast_prop (*8. Peirce's law*) -lemma "|- ((P \ Q) \ P) \ P" +lemma "\ ((P \ Q) \ P) \ P" by fast_prop (*9*) -lemma "|- ((P \ Q) \ (\ P \ Q) \ (P \ \ Q)) \ \ (\ P \ \ Q)" +lemma "\ ((P \ Q) \ (\ P \ Q) \ (P \ \ Q)) \ \ (\ P \ \ Q)" by fast_prop (*10*) -lemma "Q \ R, R \ P \ Q, P \ (Q \ R) |- P \ Q" +lemma "Q \ R, R \ P \ Q, P \ (Q \ R) \ P \ Q" by fast_prop (*11. Proved in each direction (incorrectly, says Pelletier!!) *) -lemma "|- P \ P" +lemma "\ P \ P" by fast_prop (*12. "Dijkstra's law"*) -lemma "|- ((P \ Q) \ R) \ (P \ (Q \ R))" +lemma "\ ((P \ Q) \ R) \ (P \ (Q \ R))" by fast_prop (*13. Distributive law*) -lemma "|- P \ (Q \ R) \ (P \ Q) \ (P \ R)" +lemma "\ P \ (Q \ R) \ (P \ Q) \ (P \ R)" by fast_prop (*14*) -lemma "|- (P \ Q) \ ((Q \ \ P) \ (\ Q \ P))" +lemma "\ (P \ Q) \ ((Q \ \ P) \ (\ Q \ P))" by fast_prop (*15*) -lemma "|- (P \ Q) \ (\ P \ Q)" +lemma "\ (P \ Q) \ (\ P \ Q)" by fast_prop (*16*) -lemma "|- (P \ Q) \ (Q \ P)" +lemma "\ (P \ Q) \ (Q \ P)" by fast_prop (*17*) -lemma "|- ((P \ (Q \ R)) \ S) \ ((\ P \ Q \ S) \ (\ P \ \ R \ S))" +lemma "\ ((P \ (Q \ R)) \ S) \ ((\ P \ Q \ S) \ (\ P \ \ R \ S))" by fast_prop end diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK/Quantifiers.thy --- a/src/Sequents/LK/Quantifiers.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK/Quantifiers.thy Sat Oct 10 20:54:44 2015 +0200 @@ -9,94 +9,94 @@ imports "../LK" begin -lemma "|- (\x. P) \ P" +lemma "\ (\x. P) \ P" by fast -lemma "|- (\x y. P(x,y)) \ (\y x. P(x,y))" +lemma "\ (\x y. P(x,y)) \ (\y x. P(x,y))" by fast -lemma "\u. P(u), \v. Q(v) |- \u v. P(u) \ Q(v)" +lemma "\u. P(u), \v. Q(v) \ \u v. P(u) \ Q(v)" by fast text "Permutation of existential quantifier." -lemma "|- (\x y. P(x,y)) \ (\y x. P(x,y))" +lemma "\ (\x y. P(x,y)) \ (\y x. P(x,y))" by fast -lemma "|- (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" +lemma "\ (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" by fast (*Converse is invalid*) -lemma "|- (\x. P(x)) \ (\x. Q(x)) \ (\x. P(x) \ Q(x))" +lemma "\ (\x. P(x)) \ (\x. Q(x)) \ (\x. P(x) \ Q(x))" by fast text "Pushing \into an implication." -lemma "|- (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" +lemma "\ (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" by fast -lemma "|- (\x. P(x) \ Q) \ ((\x. P(x)) \ Q)" +lemma "\ (\x. P(x) \ Q) \ ((\x. P(x)) \ Q)" by fast -lemma "|- (\x. P) \ P" +lemma "\ (\x. P) \ P" by fast text "Distribution of \over disjunction." -lemma "|- (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" +lemma "\ (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" by fast (*Converse is invalid*) -lemma "|- (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" +lemma "\ (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" by fast text "Harder examples: classical theorems." -lemma "|- (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" +lemma "\ (\x. P \ Q(x)) \ (P \ (\x. Q(x)))" by fast -lemma "|- (\x. P(x) \ Q) \ (\x. P(x)) \ Q" +lemma "\ (\x. P(x) \ Q) \ (\x. P(x)) \ Q" by fast -lemma "|- (\x. P(x)) \ Q \ (\x. P(x) \ Q)" +lemma "\ (\x. P(x)) \ Q \ (\x. P(x) \ Q)" by fast text "Basic test of quantifier reasoning" -lemma "|- (\y. \x. Q(x,y)) \ (\x. \y. Q(x,y))" +lemma "\ (\y. \x. Q(x,y)) \ (\x. \y. Q(x,y))" by fast -lemma "|- (\x. Q(x)) \ (\x. Q(x))" +lemma "\ (\x. Q(x)) \ (\x. Q(x))" by fast text "The following are invalid!" (*INVALID*) -lemma "|- (\x. \y. Q(x,y)) \ (\y. \x. Q(x,y))" +lemma "\ (\x. \y. Q(x,y)) \ (\y. \x. Q(x,y))" apply fast? apply (rule _) oops (*INVALID*) -lemma "|- (\x. Q(x)) \ (\x. Q(x))" +lemma "\ (\x. Q(x)) \ (\x. Q(x))" apply fast? apply (rule _) oops (*INVALID*) -schematic_goal "|- P(?a) \ (\x. P(x))" +schematic_goal "\ P(?a) \ (\x. P(x))" apply fast? apply (rule _) oops (*INVALID*) -schematic_goal "|- (P(?a) \ (\x. Q(x))) \ (\x. P(x) \ Q(x))" +schematic_goal "\ (P(?a) \ (\x. Q(x))) \ (\x. P(x) \ Q(x))" apply fast? apply (rule _) oops @@ -104,35 +104,35 @@ text "Back to things that are provable..." -lemma "|- (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" +lemma "\ (\x. P(x) \ Q(x)) \ (\x. P(x)) \ (\x. Q(x))" by fast (*An example of why exR should be delayed as long as possible*) -lemma "|- (P \ (\x. Q(x))) \ P \ (\x. Q(x))" +lemma "\ (P \ (\x. Q(x))) \ P \ (\x. Q(x))" by fast text "Solving for a Var" -schematic_goal "|- (\x. P(x) \ Q(f(x))) \ (\x. Q(x) \ R(g(x))) \ P(d) \ R(?a)" +schematic_goal "\ (\x. P(x) \ Q(f(x))) \ (\x. Q(x) \ R(g(x))) \ P(d) \ R(?a)" by fast text "Principia Mathematica *11.53" -lemma "|- (\x y. P(x) \ Q(y)) \ ((\x. P(x)) \ (\y. Q(y)))" +lemma "\ (\x y. P(x) \ Q(y)) \ ((\x. P(x)) \ (\y. Q(y)))" by fast text "Principia Mathematica *11.55" -lemma "|- (\x y. P(x) \ Q(x,y)) \ (\x. P(x) \ (\y. Q(x,y)))" +lemma "\ (\x y. P(x) \ Q(x,y)) \ (\x. P(x) \ (\y. Q(x,y)))" by fast text "Principia Mathematica *11.61" -lemma "|- (\y. \x. P(x) \ Q(x,y)) \ (\x. P(x) \ (\y. Q(x,y)))" +lemma "\ (\y. \x. P(x) \ Q(x,y)) \ (\x. P(x) \ (\y. Q(x,y)))" by fast diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/LK0.thy --- a/src/Sequents/LK0.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/LK0.thy Sat Oct 10 20:54:44 2015 +0200 @@ -32,7 +32,7 @@ Ex :: "('a \ o) \ o" (binder "\" 10) syntax - "_Trueprop" :: "two_seqe" ("((_)/ |- (_))" [6,6] 5) + "_Trueprop" :: "two_seqe" ("((_)/ \ (_))" [6,6] 5) parse_translation \[(@{syntax_const "_Trueprop"}, K (two_seq_tr @{const_syntax Trueprop}))]\ print_translation \[(@{const_syntax Trueprop}, K (two_seq_tr' @{syntax_const "_Trueprop"}))]\ @@ -45,34 +45,34 @@ (*Structural rules: contraction, thinning, exchange [Soren Heilmann] *) - contRS: "$H |- $E, $S, $S, $F \ $H |- $E, $S, $F" and - contLS: "$H, $S, $S, $G |- $E \ $H, $S, $G |- $E" and + contRS: "$H \ $E, $S, $S, $F \ $H \ $E, $S, $F" and + contLS: "$H, $S, $S, $G \ $E \ $H, $S, $G \ $E" and - thinRS: "$H |- $E, $F \ $H |- $E, $S, $F" and - thinLS: "$H, $G |- $E \ $H, $S, $G |- $E" and + thinRS: "$H \ $E, $F \ $H \ $E, $S, $F" and + thinLS: "$H, $G \ $E \ $H, $S, $G \ $E" and - exchRS: "$H |- $E, $R, $S, $F \ $H |- $E, $S, $R, $F" and - exchLS: "$H, $R, $S, $G |- $E \ $H, $S, $R, $G |- $E" and + exchRS: "$H \ $E, $R, $S, $F \ $H \ $E, $S, $R, $F" and + exchLS: "$H, $R, $S, $G \ $E \ $H, $S, $R, $G \ $E" and - cut: "\$H |- $E, P; $H, P |- $E\ \ $H |- $E" and + cut: "\$H \ $E, P; $H, P \ $E\ \ $H \ $E" and (*Propositional rules*) - basic: "$H, P, $G |- $E, P, $F" and + basic: "$H, P, $G \ $E, P, $F" and - conjR: "\$H|- $E, P, $F; $H|- $E, Q, $F\ \ $H|- $E, P \ Q, $F" and - conjL: "$H, P, Q, $G |- $E \ $H, P \ Q, $G |- $E" and + conjR: "\$H\ $E, P, $F; $H\ $E, Q, $F\ \ $H\ $E, P \ Q, $F" and + conjL: "$H, P, Q, $G \ $E \ $H, P \ Q, $G \ $E" and - disjR: "$H |- $E, P, Q, $F \ $H |- $E, P \ Q, $F" and - disjL: "\$H, P, $G |- $E; $H, Q, $G |- $E\ \ $H, P \ Q, $G |- $E" and + disjR: "$H \ $E, P, Q, $F \ $H \ $E, P \ Q, $F" and + disjL: "\$H, P, $G \ $E; $H, Q, $G \ $E\ \ $H, P \ Q, $G \ $E" and - impR: "$H, P |- $E, Q, $F \ $H |- $E, P \ Q, $F" and - impL: "\$H,$G |- $E,P; $H, Q, $G |- $E\ \ $H, P \ Q, $G |- $E" and + impR: "$H, P \ $E, Q, $F \ $H \ $E, P \ Q, $F" and + impL: "\$H,$G \ $E,P; $H, Q, $G \ $E\ \ $H, P \ Q, $G \ $E" and - notR: "$H, P |- $E, $F \ $H |- $E, \ P, $F" and - notL: "$H, $G |- $E, P \ $H, \ P, $G |- $E" and + notR: "$H, P \ $E, $F \ $H \ $E, \ P, $F" and + notL: "$H, $G \ $E, P \ $H, \ P, $G \ $E" and - FalseL: "$H, False, $G |- $E" and + FalseL: "$H, False, $G \ $E" and True_def: "True \ False \ False" and iff_def: "P \ Q \ (P \ Q) \ (Q \ P)" @@ -80,27 +80,27 @@ axiomatization where (*Quantifiers*) - allR: "(\x. $H |- $E, P(x), $F) \ $H |- $E, \x. P(x), $F" and - allL: "$H, P(x), $G, \x. P(x) |- $E \ $H, \x. P(x), $G |- $E" and + allR: "(\x. $H \ $E, P(x), $F) \ $H \ $E, \x. P(x), $F" and + allL: "$H, P(x), $G, \x. P(x) \ $E \ $H, \x. P(x), $G \ $E" and - exR: "$H |- $E, P(x), $F, \x. P(x) \ $H |- $E, \x. P(x), $F" and - exL: "(\x. $H, P(x), $G |- $E) \ $H, \x. P(x), $G |- $E" and + exR: "$H \ $E, P(x), $F, \x. P(x) \ $H \ $E, \x. P(x), $F" and + exL: "(\x. $H, P(x), $G \ $E) \ $H, \x. P(x), $G \ $E" and (*Equality*) - refl: "$H |- $E, a = a, $F" and - subst: "\G H E. $H(a), $G(a) |- $E(a) \ $H(b), a=b, $G(b) |- $E(b)" + refl: "$H \ $E, a = a, $F" and + subst: "\G H E. $H(a), $G(a) \ $E(a) \ $H(b), a=b, $G(b) \ $E(b)" (* Reflection *) axiomatization where - eq_reflection: "|- x = y \ (x \ y)" and - iff_reflection: "|- P \ Q \ (P \ Q)" + eq_reflection: "\ x = y \ (x \ y)" and + iff_reflection: "\ P \ Q \ (P \ Q)" (*Descriptions*) axiomatization where - The: "\$H |- $E, P(a), $F; \x.$H, P(x) |- $E, x=a, $F\ \ - $H |- $E, P(THE x. P(x)), $F" + The: "\$H \ $E, P(a), $F; \x.$H, P(x) \ $E, x=a, $F\ \ + $H \ $E, P(THE x. P(x)), $F" definition If :: "[o, 'a, 'a] \ 'a" ("(if (_)/ then (_)/ else (_))" 10) where "If(P,x,y) \ THE z::'a. (P \ z = x) \ (\ P \ z = y)" @@ -110,26 +110,26 @@ (*contraction*) -lemma contR: "$H |- $E, P, P, $F \ $H |- $E, P, $F" +lemma contR: "$H \ $E, P, P, $F \ $H \ $E, P, $F" by (rule contRS) -lemma contL: "$H, P, P, $G |- $E \ $H, P, $G |- $E" +lemma contL: "$H, P, P, $G \ $E \ $H, P, $G \ $E" by (rule contLS) (*thinning*) -lemma thinR: "$H |- $E, $F \ $H |- $E, P, $F" +lemma thinR: "$H \ $E, $F \ $H \ $E, P, $F" by (rule thinRS) -lemma thinL: "$H, $G |- $E \ $H, P, $G |- $E" +lemma thinL: "$H, $G \ $E \ $H, P, $G \ $E" by (rule thinLS) (*exchange*) -lemma exchR: "$H |- $E, Q, P, $F \ $H |- $E, P, Q, $F" +lemma exchR: "$H \ $E, Q, P, $F \ $H \ $E, P, Q, $F" by (rule exchRS) -lemma exchL: "$H, Q, P, $G |- $E \ $H, P, Q, $G |- $E" +lemma exchL: "$H, Q, P, $G \ $E \ $H, P, Q, $G \ $E" by (rule exchLS) ML \ @@ -146,21 +146,21 @@ (** If-and-only-if rules **) -lemma iffR: "\$H,P |- $E,Q,$F; $H,Q |- $E,P,$F\ \ $H |- $E, P \ Q, $F" +lemma iffR: "\$H,P \ $E,Q,$F; $H,Q \ $E,P,$F\ \ $H \ $E, P \ Q, $F" apply (unfold iff_def) apply (assumption | rule conjR impR)+ done -lemma iffL: "\$H,$G |- $E,P,Q; $H,Q,P,$G |- $E\ \ $H, P \ Q, $G |- $E" +lemma iffL: "\$H,$G \ $E,P,Q; $H,Q,P,$G \ $E\ \ $H, P \ Q, $G \ $E" apply (unfold iff_def) apply (assumption | rule conjL impL basic)+ done -lemma iff_refl: "$H |- $E, (P \ P), $F" +lemma iff_refl: "$H \ $E, (P \ P), $F" apply (rule iffR basic)+ done -lemma TrueR: "$H |- $E, True, $F" +lemma TrueR: "$H \ $E, True, $F" apply (unfold True_def) apply (rule impR) apply (rule basic) @@ -168,9 +168,9 @@ (*Descriptions*) lemma the_equality: - assumes p1: "$H |- $E, P(a), $F" - and p2: "\x. $H, P(x) |- $E, x=a, $F" - shows "$H |- $E, (THE x. P(x)) = a, $F" + assumes p1: "$H \ $E, P(a), $F" + and p2: "\x. $H, P(x) \ $E, x=a, $F" + shows "$H \ $E, (THE x. P(x)) = a, $F" apply (rule cut) apply (rule_tac [2] p2) apply (rule The, rule thinR, rule exchRS, rule p1) @@ -180,12 +180,12 @@ (** Weakened quantifier rules. Incomplete, they let the search terminate.**) -lemma allL_thin: "$H, P(x), $G |- $E \ $H, \x. P(x), $G |- $E" +lemma allL_thin: "$H, P(x), $G \ $E \ $H, \x. P(x), $G \ $E" apply (rule allL) apply (erule thinL) done -lemma exR_thin: "$H |- $E, P(x), $F \ $H |- $E, \x. P(x), $F" +lemma exR_thin: "$H \ $E, P(x), $F \ $H \ $E, \x. P(x), $F" apply (rule exR) apply (erule thinR) done @@ -233,18 +233,18 @@ lemma mp_R: - assumes major: "$H |- $E, $F, P \ Q" - and minor: "$H |- $E, $F, P" - shows "$H |- $E, Q, $F" + assumes major: "$H \ $E, $F, P \ Q" + and minor: "$H \ $E, $F, P" + shows "$H \ $E, Q, $F" apply (rule thinRS [THEN cut], rule major) apply step apply (rule thinR, rule minor) done lemma mp_L: - assumes major: "$H, $G |- $E, P \ Q" - and minor: "$H, $G, Q |- $E" - shows "$H, P, $G |- $E" + assumes major: "$H, $G \ $E, P \ Q" + and minor: "$H, $G, Q \ $E" + shows "$H, P, $G \ $E" apply (rule thinL [THEN cut], rule major) apply step apply (rule thinL, rule minor) @@ -254,18 +254,18 @@ (** Two rules to generate left- and right- rules from implications **) lemma R_of_imp: - assumes major: "|- P \ Q" - and minor: "$H |- $E, $F, P" - shows "$H |- $E, Q, $F" + assumes major: "\ P \ Q" + and minor: "$H \ $E, $F, P" + shows "$H \ $E, Q, $F" apply (rule mp_R) apply (rule_tac [2] minor) apply (rule thinRS, rule major [THEN thinLS]) done lemma L_of_imp: - assumes major: "|- P \ Q" - and minor: "$H, $G, Q |- $E" - shows "$H, P, $G |- $E" + assumes major: "\ P \ Q" + and minor: "$H, $G, Q \ $E" + shows "$H, P, $G \ $E" apply (rule mp_L) apply (rule_tac [2] minor) apply (rule thinRS, rule major [THEN thinLS]) @@ -273,24 +273,24 @@ (*Can be used to create implications in a subgoal*) lemma backwards_impR: - assumes prem: "$H, $G |- $E, $F, P \ Q" - shows "$H, P, $G |- $E, Q, $F" + assumes prem: "$H, $G \ $E, $F, P \ Q" + shows "$H, P, $G \ $E, Q, $F" apply (rule mp_L) apply (rule_tac [2] basic) apply (rule thinR, rule prem) done -lemma conjunct1: "|-P \ Q \ |-P" +lemma conjunct1: "\P \ Q \ \P" apply (erule thinR [THEN cut]) apply fast done -lemma conjunct2: "|-P \ Q \ |-Q" +lemma conjunct2: "\P \ Q \ \Q" apply (erule thinR [THEN cut]) apply fast done -lemma spec: "|- (\x. P(x)) \ |- P(x)" +lemma spec: "\ (\x. P(x)) \ \ P(x)" apply (erule thinR [THEN cut]) apply fast done @@ -298,10 +298,10 @@ (** Equality **) -lemma sym: "|- a = b \ b = a" +lemma sym: "\ a = b \ b = a" by (safe add!: subst) -lemma trans: "|- a = b \ b = c \ a = c" +lemma trans: "\ a = b \ b = c \ a = c" by (safe add!: subst) (* Symmetry of equality in hypotheses *) @@ -310,18 +310,18 @@ (* Symmetry of equality in hypotheses *) lemmas symR = sym [THEN R_of_imp] -lemma transR: "\$H|- $E, $F, a = b; $H|- $E, $F, b=c\ \ $H|- $E, a = c, $F" +lemma transR: "\$H\ $E, $F, a = b; $H\ $E, $F, b=c\ \ $H\ $E, a = c, $F" by (rule trans [THEN R_of_imp, THEN mp_R]) (* Two theorms for rewriting only one instance of a definition: the first for definitions of formulae and the second for terms *) -lemma def_imp_iff: "(A \ B) \ |- A \ B" +lemma def_imp_iff: "(A \ B) \ \ A \ B" apply unfold apply (rule iff_refl) done -lemma meta_eq_to_obj_eq: "(A \ B) \ |- A = B" +lemma meta_eq_to_obj_eq: "(A \ B) \ \ A = B" apply unfold apply (rule refl) done @@ -329,19 +329,19 @@ (** if-then-else rules **) -lemma if_True: "|- (if True then x else y) = x" +lemma if_True: "\ (if True then x else y) = x" unfolding If_def by fast -lemma if_False: "|- (if False then x else y) = y" +lemma if_False: "\ (if False then x else y) = y" unfolding If_def by fast -lemma if_P: "|- P \ |- (if P then x else y) = x" +lemma if_P: "\ P \ \ (if P then x else y) = x" apply (unfold If_def) apply (erule thinR [THEN cut]) apply fast done -lemma if_not_P: "|- \ P \ |- (if P then x else y) = y" +lemma if_not_P: "\ \ P \ \ (if P then x else y) = y" apply (unfold If_def) apply (erule thinR [THEN cut]) apply fast diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/Modal0.thy --- a/src/Sequents/Modal0.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/Modal0.thy Sat Oct 10 20:54:44 2015 +0200 @@ -43,12 +43,12 @@ lemmas rewrite_rls = strimp_def streqv_def -lemma iffR: "\$H,P |- $E,Q,$F; $H,Q |- $E,P,$F\ \ $H |- $E, P \ Q, $F" +lemma iffR: "\$H,P \ $E,Q,$F; $H,Q \ $E,P,$F\ \ $H \ $E, P \ Q, $F" apply (unfold iff_def) apply (assumption | rule conjR impR)+ done -lemma iffL: "\$H,$G |- $E,P,Q; $H,Q,P,$G |- $E \ \ $H, P \ Q, $G |- $E" +lemma iffL: "\$H,$G \ $E,P,Q; $H,Q,P,$G \ $E \ \ $H, P \ Q, $G \ $E" apply (unfold iff_def) apply (assumption | rule conjL impL basic)+ done diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/S4.thy --- a/src/Sequents/S4.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/S4.thy Sat Oct 10 20:54:44 2015 +0200 @@ -23,13 +23,13 @@ boxR: "\$E |L> $E'; $F |R> $F'; $G |R> $G'; - $E' |- $F', P, $G'\ \ $E |- $F, []P, $G" and - boxL: "$E,P,$F,[]P |- $G \ $E, []P, $F |- $G" and + $E' \ $F', P, $G'\ \ $E \ $F, []P, $G" and + boxL: "$E,P,$F,[]P \ $G \ $E, []P, $F \ $G" and - diaR: "$E |- $F,P,$G,<>P \ $E |- $F, <>P, $G" and + diaR: "$E \ $F,P,$G,<>P \ $E \ $F, <>P, $G" and diaL: "\$E |L> $E'; $F |L> $F'; $G |R> $G'; - $E', P, $F' |- $G'\ \ $E, <>P, $F |- $G" + $E', P, $F' \ $G'\ \ $E, <>P, $F \ $G" ML \ structure S4_Prover = Modal_ProverFun @@ -49,63 +49,63 @@ (* Theorems of system T from Hughes and Cresswell and Hailpern, LNCS 129 *) -lemma "|- []P \ P" by S4_solve -lemma "|- [](P \ Q) \ ([]P \ []Q)" by S4_solve (* normality*) -lemma "|- (P --< Q) \ []P \ []Q" by S4_solve -lemma "|- P \ <>P" by S4_solve +lemma "\ []P \ P" by S4_solve +lemma "\ [](P \ Q) \ ([]P \ []Q)" by S4_solve (* normality*) +lemma "\ (P --< Q) \ []P \ []Q" by S4_solve +lemma "\ P \ <>P" by S4_solve -lemma "|- [](P \ Q) \ []P \ []Q" by S4_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S4_solve -lemma "|- [](P \ Q) \ (P >-< Q)" by S4_solve -lemma "|- <>(P \ Q) \ ([]P \ <>Q)" by S4_solve -lemma "|- []P \ \ <>(\ P)" by S4_solve -lemma "|- [](\ P) \ \ <>P" by S4_solve -lemma "|- \ []P \ <>(\ P)" by S4_solve -lemma "|- [][]P \ \ <><>(\ P)" by S4_solve -lemma "|- \ <>(P \ Q) \ \ <>P \ \ <>Q" by S4_solve +lemma "\ [](P \ Q) \ []P \ []Q" by S4_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S4_solve +lemma "\ [](P \ Q) \ (P >-< Q)" by S4_solve +lemma "\ <>(P \ Q) \ ([]P \ <>Q)" by S4_solve +lemma "\ []P \ \ <>(\ P)" by S4_solve +lemma "\ [](\ P) \ \ <>P" by S4_solve +lemma "\ \ []P \ <>(\ P)" by S4_solve +lemma "\ [][]P \ \ <><>(\ P)" by S4_solve +lemma "\ \ <>(P \ Q) \ \ <>P \ \ <>Q" by S4_solve -lemma "|- []P \ []Q \ [](P \ Q)" by S4_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S4_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by S4_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by S4_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by S4_solve -lemma "|- <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by S4_solve -lemma "|- (P --< Q) \ (Q --< R) \ (P --< R)" by S4_solve -lemma "|- []P \ <>Q \ <>(P \ Q)" by S4_solve +lemma "\ []P \ []Q \ [](P \ Q)" by S4_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S4_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by S4_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by S4_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by S4_solve +lemma "\ <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by S4_solve +lemma "\ (P --< Q) \ (Q --< R) \ (P --< R)" by S4_solve +lemma "\ []P \ <>Q \ <>(P \ Q)" by S4_solve (* Theorems of system S4 from Hughes and Cresswell, p.46 *) -lemma "|- []A \ A" by S4_solve (* refexivity *) -lemma "|- []A \ [][]A" by S4_solve (* transitivity *) -lemma "|- []A \ <>A" by S4_solve (* seriality *) -lemma "|- <>[](<>A \ []<>A)" by S4_solve -lemma "|- <>[](<>[]A \ []A)" by S4_solve -lemma "|- []P \ [][]P" by S4_solve -lemma "|- <>P \ <><>P" by S4_solve -lemma "|- <>[]<>P \ <>P" by S4_solve -lemma "|- []<>P \ []<>[]<>P" by S4_solve -lemma "|- <>[]P \ <>[]<>[]P" by S4_solve +lemma "\ []A \ A" by S4_solve (* refexivity *) +lemma "\ []A \ [][]A" by S4_solve (* transitivity *) +lemma "\ []A \ <>A" by S4_solve (* seriality *) +lemma "\ <>[](<>A \ []<>A)" by S4_solve +lemma "\ <>[](<>[]A \ []A)" by S4_solve +lemma "\ []P \ [][]P" by S4_solve +lemma "\ <>P \ <><>P" by S4_solve +lemma "\ <>[]<>P \ <>P" by S4_solve +lemma "\ []<>P \ []<>[]<>P" by S4_solve +lemma "\ <>[]P \ <>[]<>[]P" by S4_solve (* Theorems for system S4 from Hughes and Cresswell, p.60 *) -lemma "|- []P \ []Q \ []([]P \ []Q)" by S4_solve -lemma "|- ((P >-< Q) --< R) \ ((P >-< Q) --< []R)" by S4_solve +lemma "\ []P \ []Q \ []([]P \ []Q)" by S4_solve +lemma "\ ((P >-< Q) --< R) \ ((P >-< Q) --< []R)" by S4_solve (* These are from Hailpern, LNCS 129 *) -lemma "|- [](P \ Q) \ []P \ []Q" by S4_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S4_solve -lemma "|- <>(P \ Q) \ ([]P \ <>Q)" by S4_solve +lemma "\ [](P \ Q) \ []P \ []Q" by S4_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S4_solve +lemma "\ <>(P \ Q) \ ([]P \ <>Q)" by S4_solve -lemma "|- [](P \ Q) \ (<>P \ <>Q)" by S4_solve -lemma "|- []P \ []<>P" by S4_solve -lemma "|- <>[]P \ <>P" by S4_solve +lemma "\ [](P \ Q) \ (<>P \ <>Q)" by S4_solve +lemma "\ []P \ []<>P" by S4_solve +lemma "\ <>[]P \ <>P" by S4_solve -lemma "|- []P \ []Q \ [](P \ Q)" by S4_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S4_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by S4_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by S4_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by S4_solve +lemma "\ []P \ []Q \ [](P \ Q)" by S4_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S4_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by S4_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by S4_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by S4_solve end diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/S43.thy --- a/src/Sequents/S43.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/S43.thy Sat Oct 10 20:54:44 2015 +0200 @@ -48,32 +48,32 @@ (* ie *) (* S1...Sk,Sk+1...Sk+m *) (* ---------------------------------- *) -(* <>P1...<>Pk, $G |- $H, []Q1...[]Qm *) +(* <>P1...<>Pk, $G \ $H, []Q1...[]Qm *) (* *) -(* where Si == <>P1...<>Pi-1,<>Pi+1,..<>Pk,Pi, $G * |- $H *, []Q1...[]Qm *) -(* and Sj == <>P1...<>Pk, $G * |- $H *, []Q1...[]Qj-1,[]Qj+1...[]Qm,Qj *) +(* where Si == <>P1...<>Pi-1,<>Pi+1,..<>Pk,Pi, $G * \ $H *, []Q1...[]Qm *) +(* and Sj == <>P1...<>Pk, $G * \ $H *, []Q1...[]Qj-1,[]Qj+1...[]Qm,Qj *) (* and 1<=i<=k and k(S43pi <>P,$L'; $L;; $R; $Lbox;$Rdia); $L',P,$L,$Lbox |- $R,$Rdia\ \ + "\(S43pi <>P,$L'; $L;; $R; $Lbox;$Rdia); $L',P,$L,$Lbox \ $R,$Rdia\ \ S43pi $L'; <>P,$L;; $R; $Lbox;$Rdia" and S43pi2: - "\(S43pi $L';; []P,$R'; $R; $Lbox;$Rdia); $L',$Lbox |- $R',P,$R,$Rdia\ \ + "\(S43pi $L';; []P,$R'; $R; $Lbox;$Rdia); $L',$Lbox \ $R',P,$R,$Rdia\ \ S43pi $L';; $R'; []P,$R; $Lbox;$Rdia" and (* Rules for [] and <> for S43 *) - boxL: "$E, P, $F, []P |- $G \ $E, []P, $F |- $G" and - diaR: "$E |- $F, P, $G, <>P \ $E |- $F, <>P, $G" and + boxL: "$E, P, $F, []P \ $G \ $E, []P, $F \ $G" and + diaR: "$E \ $F, P, $G, <>P \ $E \ $F, <>P, $G" and pi1: "\$L1,<>P,$L2 |L> $Lbox; $L1,<>P,$L2 |R> $Ldia; $R |L> $Rbox; $R |R> $Rdia; S43pi ; $Ldia;; $Rbox; $Lbox; $Rdia\ \ - $L1, <>P, $L2 |- $R" and + $L1, <>P, $L2 \ $R" and pi2: "\$L |L> $Lbox; $L |R> $Ldia; $R1,[]P,$R2 |L> $Rbox; $R1,[]P,$R2 |R> $Rdia; S43pi ; $Ldia;; $Rbox; $Lbox; $Rdia\ \ - $L |- $R1, []P, $R2" + $L \ $R1, []P, $R2" ML \ @@ -97,108 +97,108 @@ (* Theorems of system T from Hughes and Cresswell and Hailpern, LNCS 129 *) -lemma "|- []P \ P" by S43_solve -lemma "|- [](P \ Q) \ ([]P \ []Q)" by S43_solve (* normality*) -lemma "|- (P-- []P \ []Q" by S43_solve -lemma "|- P \ <>P" by S43_solve +lemma "\ []P \ P" by S43_solve +lemma "\ [](P \ Q) \ ([]P \ []Q)" by S43_solve (* normality*) +lemma "\ (P-- []P \ []Q" by S43_solve +lemma "\ P \ <>P" by S43_solve -lemma "|- [](P \ Q) \ []P \ []Q" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- [](P \ Q) \ (P>-(P \ Q) \ ([]P \ <>Q)" by S43_solve -lemma "|- []P \ \ <>(\ P)" by S43_solve -lemma "|- [](\P) \ \ <>P" by S43_solve -lemma "|- \ []P \ <>(\ P)" by S43_solve -lemma "|- [][]P \ \ <><>(\ P)" by S43_solve -lemma "|- \ <>(P \ Q) \ \ <>P \ \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ []P \ []Q" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ (P>- <>(P \ Q) \ ([]P \ <>Q)" by S43_solve +lemma "\ []P \ \ <>(\ P)" by S43_solve +lemma "\ [](\P) \ \ <>P" by S43_solve +lemma "\ \ []P \ <>(\ P)" by S43_solve +lemma "\ [][]P \ \ <><>(\ P)" by S43_solve +lemma "\ \ <>(P \ Q) \ \ <>P \ \ <>Q" by S43_solve -lemma "|- []P \ []Q \ [](P \ Q)" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by S43_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by S43_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by S43_solve -lemma "|- <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by S43_solve -lemma "|- (P --< Q) \ (Q -- (P --< R)" by S43_solve -lemma "|- []P \ <>Q \ <>(P \ Q)" by S43_solve +lemma "\ []P \ []Q \ [](P \ Q)" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by S43_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by S43_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by S43_solve +lemma "\ <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by S43_solve +lemma "\ (P --< Q) \ (Q -- (P --< R)" by S43_solve +lemma "\ []P \ <>Q \ <>(P \ Q)" by S43_solve (* Theorems of system S4 from Hughes and Cresswell, p.46 *) -lemma "|- []A \ A" by S43_solve (* refexivity *) -lemma "|- []A \ [][]A" by S43_solve (* transitivity *) -lemma "|- []A \ <>A" by S43_solve (* seriality *) -lemma "|- <>[](<>A \ []<>A)" by S43_solve -lemma "|- <>[](<>[]A \ []A)" by S43_solve -lemma "|- []P \ [][]P" by S43_solve -lemma "|- <>P \ <><>P" by S43_solve -lemma "|- <>[]<>P \ <>P" by S43_solve -lemma "|- []<>P \ []<>[]<>P" by S43_solve -lemma "|- <>[]P \ <>[]<>[]P" by S43_solve +lemma "\ []A \ A" by S43_solve (* refexivity *) +lemma "\ []A \ [][]A" by S43_solve (* transitivity *) +lemma "\ []A \ <>A" by S43_solve (* seriality *) +lemma "\ <>[](<>A \ []<>A)" by S43_solve +lemma "\ <>[](<>[]A \ []A)" by S43_solve +lemma "\ []P \ [][]P" by S43_solve +lemma "\ <>P \ <><>P" by S43_solve +lemma "\ <>[]<>P \ <>P" by S43_solve +lemma "\ []<>P \ []<>[]<>P" by S43_solve +lemma "\ <>[]P \ <>[]<>[]P" by S43_solve (* Theorems for system S4 from Hughes and Cresswell, p.60 *) -lemma "|- []P \ []Q \ []([]P \ []Q)" by S43_solve -lemma "|- ((P >-< Q) --< R) \ ((P >-< Q) --< []R)" by S43_solve +lemma "\ []P \ []Q \ []([]P \ []Q)" by S43_solve +lemma "\ ((P >-< Q) --< R) \ ((P >-< Q) --< []R)" by S43_solve (* These are from Hailpern, LNCS 129 *) -lemma "|- [](P \ Q) \ []P \ []Q" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- <>(P \ Q) \ ([]P \ <>Q)" by S43_solve +lemma "\ [](P \ Q) \ []P \ []Q" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ <>(P \ Q) \ ([]P \ <>Q)" by S43_solve -lemma "|- [](P \ Q) \ (<>P \ <>Q)" by S43_solve -lemma "|- []P \ []<>P" by S43_solve -lemma "|- <>[]P \ <>P" by S43_solve +lemma "\ [](P \ Q) \ (<>P \ <>Q)" by S43_solve +lemma "\ []P \ []<>P" by S43_solve +lemma "\ <>[]P \ <>P" by S43_solve -lemma "|- []P \ []Q \ [](P \ Q)" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by S43_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by S43_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by S43_solve +lemma "\ []P \ []Q \ [](P \ Q)" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by S43_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by S43_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by S43_solve (* Theorems of system S43 *) -lemma "|- <>[]P \ []<>P" by S43_solve -lemma "|- <>[]P \ [][]<>P" by S43_solve -lemma "|- [](<>P \ <>Q) \ []<>P \ []<>Q" by S43_solve -lemma "|- <>[]P \ <>[]Q \ <>([]P \ []Q)" by S43_solve -lemma "|- []([]P \ []Q) \ []([]Q \ []P)" by S43_solve -lemma "|- [](<>P \ <>Q) \ [](<>Q \ <>P)" by S43_solve -lemma "|- []([]P \ Q) \ []([]Q \ P)" by S43_solve -lemma "|- [](P \ <>Q) \ [](Q \ <>P)" by S43_solve -lemma "|- [](P \ []Q \ R) \ [](P \ ([]R \ Q))" by S43_solve -lemma "|- [](P \ (Q \ <>C)) \ [](P \ C \ <>Q)" by S43_solve -lemma "|- []([]P \ Q) \ [](P \ []Q) \ []P \ []Q" by S43_solve -lemma "|- <>P \ <>Q \ <>(<>P \ Q) \ <>(P \ <>Q)" by S43_solve -lemma "|- [](P \ Q) \ []([]P \ Q) \ [](P \ []Q) \ []P \ []Q" by S43_solve -lemma "|- <>P \ <>Q \ <>(P \ Q) \ <>(<>P \ Q) \ <>(P \ <>Q)" by S43_solve -lemma "|- <>[]<>P \ []<>P" by S43_solve -lemma "|- []<>[]P \ <>[]P" by S43_solve +lemma "\ <>[]P \ []<>P" by S43_solve +lemma "\ <>[]P \ [][]<>P" by S43_solve +lemma "\ [](<>P \ <>Q) \ []<>P \ []<>Q" by S43_solve +lemma "\ <>[]P \ <>[]Q \ <>([]P \ []Q)" by S43_solve +lemma "\ []([]P \ []Q) \ []([]Q \ []P)" by S43_solve +lemma "\ [](<>P \ <>Q) \ [](<>Q \ <>P)" by S43_solve +lemma "\ []([]P \ Q) \ []([]Q \ P)" by S43_solve +lemma "\ [](P \ <>Q) \ [](Q \ <>P)" by S43_solve +lemma "\ [](P \ []Q \ R) \ [](P \ ([]R \ Q))" by S43_solve +lemma "\ [](P \ (Q \ <>C)) \ [](P \ C \ <>Q)" by S43_solve +lemma "\ []([]P \ Q) \ [](P \ []Q) \ []P \ []Q" by S43_solve +lemma "\ <>P \ <>Q \ <>(<>P \ Q) \ <>(P \ <>Q)" by S43_solve +lemma "\ [](P \ Q) \ []([]P \ Q) \ [](P \ []Q) \ []P \ []Q" by S43_solve +lemma "\ <>P \ <>Q \ <>(P \ Q) \ <>(<>P \ Q) \ <>(P \ <>Q)" by S43_solve +lemma "\ <>[]<>P \ []<>P" by S43_solve +lemma "\ []<>[]P \ <>[]P" by S43_solve (* These are from Hailpern, LNCS 129 *) -lemma "|- [](P \ Q) \ []P \ []Q" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- <>(P \ Q) \ []P \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ []P \ []Q" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ <>(P \ Q) \ []P \ <>Q" by S43_solve -lemma "|- [](P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- []P \ []<>P" by S43_solve -lemma "|- <>[]P \ <>P" by S43_solve -lemma "|- []<>[]P \ []<>P" by S43_solve -lemma "|- <>[]P \ <>[]<>P" by S43_solve -lemma "|- <>[]P \ []<>P" by S43_solve -lemma "|- []<>[]P \ <>[]P" by S43_solve -lemma "|- <>[]<>P \ []<>P" by S43_solve +lemma "\ [](P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ []P \ []<>P" by S43_solve +lemma "\ <>[]P \ <>P" by S43_solve +lemma "\ []<>[]P \ []<>P" by S43_solve +lemma "\ <>[]P \ <>[]<>P" by S43_solve +lemma "\ <>[]P \ []<>P" by S43_solve +lemma "\ []<>[]P \ <>[]P" by S43_solve +lemma "\ <>[]<>P \ []<>P" by S43_solve -lemma "|- []P \ []Q \ [](P \ Q)" by S43_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by S43_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by S43_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by S43_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by S43_solve -lemma "|- [](P \ Q) \ []<>P \ []<>Q" by S43_solve -lemma "|- <>[]P \ <>[]Q \ <>(P \ Q)" by S43_solve -lemma "|- <>[](P \ Q) \ <>[]P \ <>[]Q" by S43_solve -lemma "|- []<>(P \ Q) \ []<>P \ []<>Q" by S43_solve +lemma "\ []P \ []Q \ [](P \ Q)" by S43_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by S43_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by S43_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by S43_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by S43_solve +lemma "\ [](P \ Q) \ []<>P \ []<>Q" by S43_solve +lemma "\ <>[]P \ <>[]Q \ <>(P \ Q)" by S43_solve +lemma "\ <>[](P \ Q) \ <>[]P \ <>[]Q" by S43_solve +lemma "\ []<>(P \ Q) \ []<>P \ []<>Q" by S43_solve end diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/Sequents.thy --- a/src/Sequents/Sequents.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/Sequents.thy Sat Oct 10 20:54:44 2015 +0200 @@ -21,8 +21,8 @@ typedecl seq' consts - SeqO' :: "[o,seq']=>seq'" - Seq1' :: "o=>seq'" + SeqO' :: "[o,seq']\seq'" + Seq1' :: "o\seq'" subsection \Concrete syntax\ @@ -31,28 +31,28 @@ syntax "_SeqEmp" :: seq ("") - "_SeqApp" :: "[seqobj,seqcont] => seq" ("__") + "_SeqApp" :: "[seqobj,seqcont] \ seq" ("__") "_SeqContEmp" :: seqcont ("") - "_SeqContApp" :: "[seqobj,seqcont] => seqcont" (",/ __") + "_SeqContApp" :: "[seqobj,seqcont] \ seqcont" (",/ __") - "_SeqO" :: "o => seqobj" ("_") - "_SeqId" :: "'a => seqobj" ("$_") + "_SeqO" :: "o \ seqobj" ("_") + "_SeqId" :: "'a \ seqobj" ("$_") -type_synonym single_seqe = "[seq,seqobj] => prop" -type_synonym single_seqi = "[seq'=>seq',seq'=>seq'] => prop" -type_synonym two_seqi = "[seq'=>seq', seq'=>seq'] => prop" -type_synonym two_seqe = "[seq, seq] => prop" -type_synonym three_seqi = "[seq'=>seq', seq'=>seq', seq'=>seq'] => prop" -type_synonym three_seqe = "[seq, seq, seq] => prop" -type_synonym four_seqi = "[seq'=>seq', seq'=>seq', seq'=>seq', seq'=>seq'] => prop" -type_synonym four_seqe = "[seq, seq, seq, seq] => prop" -type_synonym sequence_name = "seq'=>seq'" +type_synonym single_seqe = "[seq,seqobj] \ prop" +type_synonym single_seqi = "[seq'\seq',seq'\seq'] \ prop" +type_synonym two_seqi = "[seq'\seq', seq'\seq'] \ prop" +type_synonym two_seqe = "[seq, seq] \ prop" +type_synonym three_seqi = "[seq'\seq', seq'\seq', seq'\seq'] \ prop" +type_synonym three_seqe = "[seq, seq, seq] \ prop" +type_synonym four_seqi = "[seq'\seq', seq'\seq', seq'\seq', seq'\seq'] \ prop" +type_synonym four_seqe = "[seq, seq, seq, seq] \ prop" +type_synonym sequence_name = "seq'\seq'" syntax (*Constant to allow definitions of SEQUENCES of formulas*) - "_Side" :: "seq=>(seq'=>seq')" ("<<(_)>>") + "_Side" :: "seq\(seq'\seq')" ("<<(_)>>") ML \ diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/T.thy --- a/src/Sequents/T.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/T.thy Sat Oct 10 20:54:44 2015 +0200 @@ -23,12 +23,12 @@ boxR: "\$E |L> $E'; $F |R> $F'; $G |R> $G'; - $E' |- $F', P, $G'\ \ $E |- $F, []P, $G" and - boxL: "$E, P, $F |- $G \ $E, []P, $F |- $G" and - diaR: "$E |- $F, P, $G \ $E |- $F, <>P, $G" and + $E' \ $F', P, $G'\ \ $E \ $F, []P, $G" and + boxL: "$E, P, $F \ $G \ $E, []P, $F \ $G" and + diaR: "$E \ $F, P, $G \ $E \ $F, <>P, $G" and diaL: "\$E |L> $E'; $F |L> $F'; $G |R> $G'; - $E', P, $F'|- $G'\ \ $E, <>P, $F |- $G" + $E', P, $F'\ $G'\ \ $E, <>P, $F \ $G" ML \ structure T_Prover = Modal_ProverFun @@ -47,28 +47,28 @@ (* Theorems of system T from Hughes and Cresswell and Hailpern, LNCS 129 *) -lemma "|- []P \ P" by T_solve -lemma "|- [](P \ Q) \ ([]P \ []Q)" by T_solve (* normality*) -lemma "|- (P --< Q) \ []P \ []Q" by T_solve -lemma "|- P \ <>P" by T_solve +lemma "\ []P \ P" by T_solve +lemma "\ [](P \ Q) \ ([]P \ []Q)" by T_solve (* normality*) +lemma "\ (P --< Q) \ []P \ []Q" by T_solve +lemma "\ P \ <>P" by T_solve -lemma "|- [](P \ Q) \ []P \ []Q" by T_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by T_solve -lemma "|- [](P \ Q) \ (P >-< Q)" by T_solve -lemma "|- <>(P \ Q) \ ([]P \ <>Q)" by T_solve -lemma "|- []P \ \ <>(\ P)" by T_solve -lemma "|- [](\ P) \ \ <>P" by T_solve -lemma "|- \ []P \ <>(\ P)" by T_solve -lemma "|- [][]P \ \ <><>(\ P)" by T_solve -lemma "|- \ <>(P \ Q) \ \ <>P \ \ <>Q" by T_solve +lemma "\ [](P \ Q) \ []P \ []Q" by T_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by T_solve +lemma "\ [](P \ Q) \ (P >-< Q)" by T_solve +lemma "\ <>(P \ Q) \ ([]P \ <>Q)" by T_solve +lemma "\ []P \ \ <>(\ P)" by T_solve +lemma "\ [](\ P) \ \ <>P" by T_solve +lemma "\ \ []P \ <>(\ P)" by T_solve +lemma "\ [][]P \ \ <><>(\ P)" by T_solve +lemma "\ \ <>(P \ Q) \ \ <>P \ \ <>Q" by T_solve -lemma "|- []P \ []Q \ [](P \ Q)" by T_solve -lemma "|- <>(P \ Q) \ <>P \ <>Q" by T_solve -lemma "|- [](P \ Q) \ []P \ <>Q" by T_solve -lemma "|- <>P \ []Q \ <>(P \ Q)" by T_solve -lemma "|- [](P \ Q) \ <>P \ []Q" by T_solve -lemma "|- <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by T_solve -lemma "|- (P --< Q) \ (Q --< R ) \ (P --< R)" by T_solve -lemma "|- []P \ <>Q \ <>(P \ Q)" by T_solve +lemma "\ []P \ []Q \ [](P \ Q)" by T_solve +lemma "\ <>(P \ Q) \ <>P \ <>Q" by T_solve +lemma "\ [](P \ Q) \ []P \ <>Q" by T_solve +lemma "\ <>P \ []Q \ <>(P \ Q)" by T_solve +lemma "\ [](P \ Q) \ <>P \ []Q" by T_solve +lemma "\ <>(P \ (Q \ R)) \ ([]P \ <>Q) \ ([]P \ <>R)" by T_solve +lemma "\ (P --< Q) \ (Q --< R ) \ (P --< R)" by T_solve +lemma "\ []P \ <>Q \ <>(P \ Q)" by T_solve end diff -r 538100cc4399 -r 0a29a984a91b src/Sequents/Washing.thy --- a/src/Sequents/Washing.thy Sat Oct 10 20:51:39 2015 +0200 +++ b/src/Sequents/Washing.thy Sat Oct 10 20:54:44 2015 +0200 @@ -15,19 +15,19 @@ clean :: o where change: - "dollar |- (quarter >< quarter >< quarter >< quarter)" and + "dollar \ (quarter >< quarter >< quarter >< quarter)" and load1: - "quarter , quarter , quarter , quarter , quarter |- loaded" and + "quarter , quarter , quarter , quarter , quarter \ loaded" and load2: - "dollar , quarter |- loaded" and + "dollar , quarter \ loaded" and wash: - "loaded , dirty |- wet" and + "loaded , dirty \ wet" and dry: - "wet, quarter , quarter , quarter |- clean" + "wet, quarter , quarter , quarter \ clean" (* "activate" definitions for use in proof *) @@ -39,17 +39,17 @@ (* a load of dirty clothes and two dollars gives you clean clothes *) -lemma "dollar , dollar , dirty |- clean" +lemma "dollar , dollar , dirty \ clean" by (best add!: changeI load1I washI dryI) (* order of premises doesn't matter *) -lemma "dollar , dirty , dollar |- clean" +lemma "dollar , dirty , dollar \ clean" by (best add!: changeI load1I washI dryI) (* alternative formulation *) -lemma "dollar , dollar |- dirty -o clean" +lemma "dollar , dollar \ dirty -o clean" by (best add!: changeI load1I washI dryI) end