diff -r f2bd501398ee -r 58eeffd73be1 src/HOL/Bali/DefiniteAssignment.thy --- a/src/HOL/Bali/DefiniteAssignment.thy Thu Sep 22 23:55:42 2005 +0200 +++ b/src/HOL/Bali/DefiniteAssignment.thy Thu Sep 22 23:56:15 2005 +0200 @@ -1350,18 +1350,18 @@ from da show "\ B'. B \ B' \ \ A'. Env\ B' \t\ A'" (is "PROP ?Hyp Env B t") proof (induct) - case Skip thus ?case by (rules intro: da.Skip) + case Skip thus ?case by (iprover intro: da.Skip) next - case Expr thus ?case by (rules intro: da.Expr) + case Expr thus ?case by (iprover intro: da.Expr) next case (Lab A B C Env c l B') have "PROP ?Hyp Env B \c\" . moreover have B': "B \ B'" . ultimately obtain C' where "Env\ B' \\c\\ C'" - by rules + by iprover then obtain A' where "Env\ B' \\Break l\ c\\ A'" - by (rules intro: da.Lab) + by (iprover intro: da.Lab) thus ?case .. next case (Comp A B C1 C2 Env c1 c2 B') @@ -1370,7 +1370,7 @@ moreover have B': "B \ B'" . ultimately obtain C1' where da_c1': "Env\ B' \\c1\\ C1'" - by rules + by iprover with da_c1 B' have "nrm C1 \ nrm C1'" @@ -1378,9 +1378,9 @@ moreover have "PROP ?Hyp Env (nrm C1) \c2\" . ultimately obtain C2' where "Env\ nrm C1' \\c2\\ C2'" - by rules + by iprover with da_c1' obtain A' where "Env\ B' \\c1;; c2\\ A'" - by (rules intro: da.Comp) + by (iprover intro: da.Comp) thus ?case .. next case (If A B C1 C2 E Env c1 c2 e B') @@ -1389,7 +1389,7 @@ proof - have "PROP ?Hyp Env B \e\" by (rule If.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain C1' where "Env\ (B' \ assigns_if True e) \\c1\\ C1'" @@ -1400,7 +1400,7 @@ moreover have "PROP ?Hyp Env (B \ assigns_if True e) \c1\" by (rule If.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain C2' where "Env\ (B' \ assigns_if False e) \\c2\\ C2'" @@ -1410,11 +1410,11 @@ moreover have "PROP ?Hyp Env (B \ assigns_if False e) \c2\" by (rule If.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\If(e) c1 Else c2\\ A'" - by (rules intro: da.If) + by (iprover intro: da.If) thus ?case .. next case (Loop A B C E Env c e l B') @@ -1423,7 +1423,7 @@ proof - have "PROP ?Hyp Env B \e\" by (rule Loop.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain C' where "Env\ (B' \ assigns_if True e) \\c\\ C'" @@ -1434,11 +1434,11 @@ moreover have "PROP ?Hyp Env (B \ assigns_if True e) \c\" by (rule Loop.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\l\ While(e) c\\ A'" - by (rules intro: da.Loop ) + by (iprover intro: da.Loop ) thus ?case .. next case (Jmp A B Env jump B') @@ -1453,12 +1453,12 @@ | Cont l \ \k. UNIV | Ret \ \k. UNIV)" - by rules + by iprover ultimately have "Env\ B' \\Jmp jump\\ A'" by (rule da.Jmp) thus ?case .. next - case Throw thus ?case by (rules intro: da.Throw ) + case Throw thus ?case by (iprover intro: da.Throw ) next case (Try A B C C1 C2 Env c1 c2 vn B') have B': "B \ B'" . @@ -1466,7 +1466,7 @@ proof - have "PROP ?Hyp Env B \c1\" by (rule Try.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain C2' where @@ -1478,11 +1478,11 @@ (B \ {VName vn}) \c2\" by (rule Try.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\Try c1 Catch(C vn) c2\\ A'" - by (rules intro: da.Try ) + by (iprover intro: da.Try ) thus ?case .. next case (Fin A B C1 C2 Env c1 c2 B') @@ -1491,33 +1491,33 @@ proof - have "PROP ?Hyp Env B \c1\" by (rule Fin.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain C2' where "Env\ B' \\c2\\ C2'" proof - have "PROP ?Hyp Env B \c2\" by (rule Fin.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\c1 Finally c2\\ A'" - by (rules intro: da.Fin ) + by (iprover intro: da.Fin ) thus ?case .. next - case Init thus ?case by (rules intro: da.Init) + case Init thus ?case by (iprover intro: da.Init) next - case NewC thus ?case by (rules intro: da.NewC) + case NewC thus ?case by (iprover intro: da.NewC) next - case NewA thus ?case by (rules intro: da.NewA) + case NewA thus ?case by (iprover intro: da.NewA) next - case Cast thus ?case by (rules intro: da.Cast) + case Cast thus ?case by (iprover intro: da.Cast) next - case Inst thus ?case by (rules intro: da.Inst) + case Inst thus ?case by (iprover intro: da.Inst) next - case Lit thus ?case by (rules intro: da.Lit) + case Lit thus ?case by (iprover intro: da.Lit) next - case UnOp thus ?case by (rules intro: da.UnOp) + case UnOp thus ?case by (iprover intro: da.UnOp) next case (CondAnd A B E1 E2 Env e1 e2 B') have B': "B \ B'" . @@ -1525,7 +1525,7 @@ proof - have "PROP ?Hyp Env B \e1\" by (rule CondAnd.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E2' where "Env\ B' \ assigns_if True e1 \\e2\\ E2'" @@ -1534,11 +1534,11 @@ by blast moreover have "PROP ?Hyp Env (B \ assigns_if True e1) \e2\" by (rule CondAnd.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\BinOp CondAnd e1 e2\\ A'" - by (rules intro: da.CondAnd) + by (iprover intro: da.CondAnd) thus ?case .. next case (CondOr A B E1 E2 Env e1 e2 B') @@ -1547,7 +1547,7 @@ proof - have "PROP ?Hyp Env B \e1\" by (rule CondOr.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E2' where "Env\ B' \ assigns_if False e1 \\e2\\ E2'" @@ -1556,11 +1556,11 @@ by blast moreover have "PROP ?Hyp Env (B \ assigns_if False e1) \e2\" by (rule CondOr.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\BinOp CondOr e1 e2\\ A'" - by (rules intro: da.CondOr) + by (iprover intro: da.CondOr) thus ?case .. next case (BinOp A B E1 Env binop e1 e2 B') @@ -1569,7 +1569,7 @@ proof - have "PROP ?Hyp Env B \e1\" by (rule BinOp.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain A' where "Env\ nrm E1' \\e2\\ A'" @@ -1580,35 +1580,35 @@ by (rule da_monotone [THEN conjE]) moreover have "PROP ?Hyp Env (nrm E1) \e2\" by (rule BinOp.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately have "Env\ B' \\BinOp binop e1 e2\\ A'" - using BinOp.hyps by (rules intro: da.BinOp) + using BinOp.hyps by (iprover intro: da.BinOp) thus ?case .. next case (Super B Env B') have B': "B \ B'" . with Super.hyps have "This \ B' " by auto - thus ?case by (rules intro: da.Super) + thus ?case by (iprover intro: da.Super) next case (AccLVar A B Env vn B') have "vn \ B" . moreover have "B \ B'" . ultimately have "vn \ B'" by auto - thus ?case by (rules intro: da.AccLVar) + thus ?case by (iprover intro: da.AccLVar) next - case Acc thus ?case by (rules intro: da.Acc) + case Acc thus ?case by (iprover intro: da.Acc) next case (AssLVar A B E Env e vn B') have B': "B \ B'" . then obtain E' where "Env\ B' \\e\\ E'" - by (rule AssLVar.hyps [elim_format]) rules + by (rule AssLVar.hyps [elim_format]) iprover then obtain A' where "Env\ B' \\LVar vn:=e\\ A'" - by (rules intro: da.AssLVar) + by (iprover intro: da.AssLVar) thus ?case .. next case (Ass A B Env V e v B') @@ -1619,7 +1619,7 @@ proof - have "PROP ?Hyp Env B \v\" by (rule Ass.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain A' where "Env\ nrm V' \\e\\ A'" @@ -1630,11 +1630,11 @@ by (rule da_monotone [THEN conjE]) moreover have "PROP ?Hyp Env (nrm V) \e\" by (rule Ass.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately have "Env\ B' \\v := e\\ A'" - by (rules intro: da.Ass) + by (iprover intro: da.Ass) thus ?case .. next case (CondBool A B C E1 E2 Env c e1 e2 B') @@ -1644,7 +1644,7 @@ proof - have "PROP ?Hyp Env B \c\" by (rule CondBool.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E1' where "Env\ B' \ assigns_if True c \\e1\\ E1'" @@ -1655,7 +1655,7 @@ moreover have "PROP ?Hyp Env (B \ assigns_if True c) \e1\" by (rule CondBool.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E2' where "Env\ B' \ assigns_if False c \\e2\\ E2'" @@ -1666,11 +1666,11 @@ moreover have "PROP ?Hyp Env (B \ assigns_if False c) \e2\" by(rule CondBool.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\c ? e1 : e2\\ A'" - by (rules intro: da.CondBool) + by (iprover intro: da.CondBool) thus ?case .. next case (Cond A B C E1 E2 Env c e1 e2 B') @@ -1680,7 +1680,7 @@ proof - have "PROP ?Hyp Env B \c\" by (rule Cond.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E1' where "Env\ B' \ assigns_if True c \\e1\\ E1'" @@ -1691,7 +1691,7 @@ moreover have "PROP ?Hyp Env (B \ assigns_if True c) \e1\" by (rule Cond.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain E2' where "Env\ B' \ assigns_if False c \\e2\\ E2'" @@ -1702,11 +1702,11 @@ moreover have "PROP ?Hyp Env (B \ assigns_if False c) \e2\" by (rule Cond.hyps) ultimately - show ?thesis using that by rules + show ?thesis using that by iprover qed ultimately obtain A' where "Env\ B' \\c ? e1 : e2\\ A'" - by (rules intro: da.Cond) + by (iprover intro: da.Cond) thus ?case .. next case (Call A B E Env accC args e mn mode pTs statT B') @@ -1715,7 +1715,7 @@ proof - have "PROP ?Hyp Env B \e\" by (rule Call.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain A' where "Env\ nrm E' \\args\\ A'" @@ -1726,14 +1726,14 @@ by (rule da_monotone [THEN conjE]) moreover have "PROP ?Hyp Env (nrm E) \args\" by (rule Call.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately have "Env\ B' \\{accC,statT,mode}e\mn( {pTs}args)\\ A'" - by (rules intro: da.Call) + by (iprover intro: da.Call) thus ?case .. next - case Methd thus ?case by (rules intro: da.Methd) + case Methd thus ?case by (iprover intro: da.Methd) next case (Body A B C D Env c B') have B': "B \ B'" . @@ -1747,7 +1747,7 @@ ultimately have "nrm C \ nrm C'" by (rule da_monotone [THEN conjE]) - with da_c that show ?thesis by rules + with da_c that show ?thesis by iprover qed moreover have "Result \ nrm C" . @@ -1756,12 +1756,12 @@ moreover have "jumpNestingOkS {Ret} c" . ultimately obtain A' where "Env\ B' \\Body D c\\ A'" - by (rules intro: da.Body) + by (iprover intro: da.Body) thus ?case .. next - case LVar thus ?case by (rules intro: da.LVar) + case LVar thus ?case by (iprover intro: da.LVar) next - case FVar thus ?case by (rules intro: da.FVar) + case FVar thus ?case by (iprover intro: da.FVar) next case (AVar A B E1 Env e1 e2 B') have B': "B \ B'" . @@ -1769,7 +1769,7 @@ proof - have "PROP ?Hyp Env B \e1\" by (rule AVar.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain A' where "Env\ nrm E1' \\e2\\ A'" @@ -1780,14 +1780,14 @@ by (rule da_monotone [THEN conjE]) moreover have "PROP ?Hyp Env (nrm E1) \e2\" by (rule AVar.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately have "Env\ B' \\e1.[e2]\\ A'" - by (rules intro: da.AVar) + by (iprover intro: da.AVar) thus ?case .. next - case Nil thus ?case by (rules intro: da.Nil) + case Nil thus ?case by (iprover intro: da.Nil) next case (Cons A B E Env e es B') have B': "B \ B'" . @@ -1795,7 +1795,7 @@ proof - have "PROP ?Hyp Env B \e\" by (rule Cons.hyps) with B' - show ?thesis using that by rules + show ?thesis using that by iprover qed moreover obtain A' where "Env\ nrm E' \\es\\ A'" @@ -1806,11 +1806,11 @@ by (rule da_monotone [THEN conjE]) moreover have "PROP ?Hyp Env (nrm E) \es\" by (rule Cons.hyps) - ultimately show ?thesis using that by rules + ultimately show ?thesis using that by iprover qed ultimately have "Env\ B' \\e # es\\ A'" - by (rules intro: da.Cons) + by (iprover intro: da.Cons) thus ?case .. qed qed @@ -1841,13 +1841,13 @@ proof - from da B' obtain A' where A': "Env\ B' \t\ A'" - by (rule da_weaken [elim_format]) rules + by (rule da_weaken [elim_format]) iprover with da B' have "nrm A \ nrm A' \ (\ l. brk A l \ brk A' l)" by (rule da_monotone) with A' ex_mono show ?thesis - by rules + by iprover qed -end \ No newline at end of file +end