diff -r bb18eed53ed6 -r a1119cf551e8 src/HOL/Predicate_Compile_Examples/Examples.thy --- a/src/HOL/Predicate_Compile_Examples/Examples.thy Tue Aug 13 14:20:22 2013 +0200 +++ b/src/HOL/Predicate_Compile_Examples/Examples.thy Tue Aug 13 16:25:47 2013 +0200 @@ -77,59 +77,59 @@ datatype alphabet = a | b -inductive_set S\<^isub>1 and A\<^isub>1 and B\<^isub>1 where - "[] \ S\<^isub>1" -| "w \ A\<^isub>1 \ b # w \ S\<^isub>1" -| "w \ B\<^isub>1 \ a # w \ S\<^isub>1" -| "w \ S\<^isub>1 \ a # w \ A\<^isub>1" -| "w \ S\<^isub>1 \ b # w \ S\<^isub>1" -| "\v \ B\<^isub>1; v \ B\<^isub>1\ \ a # v @ w \ B\<^isub>1" +inductive_set S\<^sub>1 and A\<^sub>1 and B\<^sub>1 where + "[] \ S\<^sub>1" +| "w \ A\<^sub>1 \ b # w \ S\<^sub>1" +| "w \ B\<^sub>1 \ a # w \ S\<^sub>1" +| "w \ S\<^sub>1 \ a # w \ A\<^sub>1" +| "w \ S\<^sub>1 \ b # w \ S\<^sub>1" +| "\v \ B\<^sub>1; v \ B\<^sub>1\ \ a # v @ w \ B\<^sub>1" -code_pred [inductify] S\<^isub>1p . -code_pred [random_dseq inductify] S\<^isub>1p . -thm S\<^isub>1p.equation -thm S\<^isub>1p.random_dseq_equation +code_pred [inductify] S\<^sub>1p . +code_pred [random_dseq inductify] S\<^sub>1p . +thm S\<^sub>1p.equation +thm S\<^sub>1p.random_dseq_equation -values [random_dseq 5, 5, 5] 5 "{x. S\<^isub>1p x}" +values [random_dseq 5, 5, 5] 5 "{x. S\<^sub>1p x}" -inductive_set S\<^isub>2 and A\<^isub>2 and B\<^isub>2 where - "[] \ S\<^isub>2" -| "w \ A\<^isub>2 \ b # w \ S\<^isub>2" -| "w \ B\<^isub>2 \ a # w \ S\<^isub>2" -| "w \ S\<^isub>2 \ a # w \ A\<^isub>2" -| "w \ S\<^isub>2 \ b # w \ B\<^isub>2" -| "\v \ B\<^isub>2; v \ B\<^isub>2\ \ a # v @ w \ B\<^isub>2" +inductive_set S\<^sub>2 and A\<^sub>2 and B\<^sub>2 where + "[] \ S\<^sub>2" +| "w \ A\<^sub>2 \ b # w \ S\<^sub>2" +| "w \ B\<^sub>2 \ a # w \ S\<^sub>2" +| "w \ S\<^sub>2 \ a # w \ A\<^sub>2" +| "w \ S\<^sub>2 \ b # w \ B\<^sub>2" +| "\v \ B\<^sub>2; v \ B\<^sub>2\ \ a # v @ w \ B\<^sub>2" -code_pred [random_dseq inductify] S\<^isub>2p . -thm S\<^isub>2p.random_dseq_equation -thm A\<^isub>2p.random_dseq_equation -thm B\<^isub>2p.random_dseq_equation +code_pred [random_dseq inductify] S\<^sub>2p . +thm S\<^sub>2p.random_dseq_equation +thm A\<^sub>2p.random_dseq_equation +thm B\<^sub>2p.random_dseq_equation -values [random_dseq 5, 5, 5] 10 "{x. S\<^isub>2p x}" +values [random_dseq 5, 5, 5] 10 "{x. S\<^sub>2p x}" -inductive_set S\<^isub>3 and A\<^isub>3 and B\<^isub>3 where - "[] \ S\<^isub>3" -| "w \ A\<^isub>3 \ b # w \ S\<^isub>3" -| "w \ B\<^isub>3 \ a # w \ S\<^isub>3" -| "w \ S\<^isub>3 \ a # w \ A\<^isub>3" -| "w \ S\<^isub>3 \ b # w \ B\<^isub>3" -| "\v \ B\<^isub>3; w \ B\<^isub>3\ \ a # v @ w \ B\<^isub>3" +inductive_set S\<^sub>3 and A\<^sub>3 and B\<^sub>3 where + "[] \ S\<^sub>3" +| "w \ A\<^sub>3 \ b # w \ S\<^sub>3" +| "w \ B\<^sub>3 \ a # w \ S\<^sub>3" +| "w \ S\<^sub>3 \ a # w \ A\<^sub>3" +| "w \ S\<^sub>3 \ b # w \ B\<^sub>3" +| "\v \ B\<^sub>3; w \ B\<^sub>3\ \ a # v @ w \ B\<^sub>3" -code_pred [inductify, skip_proof] S\<^isub>3p . -thm S\<^isub>3p.equation +code_pred [inductify, skip_proof] S\<^sub>3p . +thm S\<^sub>3p.equation -values 10 "{x. S\<^isub>3p x}" +values 10 "{x. S\<^sub>3p x}" -inductive_set S\<^isub>4 and A\<^isub>4 and B\<^isub>4 where - "[] \ S\<^isub>4" -| "w \ A\<^isub>4 \ b # w \ S\<^isub>4" -| "w \ B\<^isub>4 \ a # w \ S\<^isub>4" -| "w \ S\<^isub>4 \ a # w \ A\<^isub>4" -| "\v \ A\<^isub>4; w \ A\<^isub>4\ \ b # v @ w \ A\<^isub>4" -| "w \ S\<^isub>4 \ b # w \ B\<^isub>4" -| "\v \ B\<^isub>4; w \ B\<^isub>4\ \ a # v @ w \ B\<^isub>4" +inductive_set S\<^sub>4 and A\<^sub>4 and B\<^sub>4 where + "[] \ S\<^sub>4" +| "w \ A\<^sub>4 \ b # w \ S\<^sub>4" +| "w \ B\<^sub>4 \ a # w \ S\<^sub>4" +| "w \ S\<^sub>4 \ a # w \ A\<^sub>4" +| "\v \ A\<^sub>4; w \ A\<^sub>4\ \ b # v @ w \ A\<^sub>4" +| "w \ S\<^sub>4 \ b # w \ B\<^sub>4" +| "\v \ B\<^sub>4; w \ B\<^sub>4\ \ a # v @ w \ B\<^sub>4" -code_pred (expected_modes: o => bool, i => bool) S\<^isub>4p . +code_pred (expected_modes: o => bool, i => bool) S\<^sub>4p . hide_const a b @@ -272,7 +272,7 @@ fun aval :: "aexp \ state' \ nat" where "aval (N n) _ = n" | "aval (V x) st = st x" | -"aval (Plus e\<^isub>1 e\<^isub>2) st = aval e\<^isub>1 st + aval e\<^isub>2 st" +"aval (Plus e\<^sub>1 e\<^sub>2) st = aval e\<^sub>1 st + aval e\<^sub>2 st" datatype bexp = B bool | Not bexp | And bexp bexp | Less aexp aexp @@ -280,7 +280,7 @@ "bval (B b) _ = b" | "bval (Not b) st = (\ bval b st)" | "bval (And b1 b2) st = (bval b1 st \ bval b2 st)" | -"bval (Less a\<^isub>1 a\<^isub>2) st = (aval a\<^isub>1 st < aval a\<^isub>2 st)" +"bval (Less a\<^sub>1 a\<^sub>2) st = (aval a\<^sub>1 st < aval a\<^sub>2 st)" datatype com' = SKIP @@ -295,14 +295,14 @@ Skip: "(SKIP,s) \ s" | Assign: "(x ::= a,s) \ s(x := aval a s)" -| Semi: "(c\<^isub>1,s\<^isub>1) \ s\<^isub>2 \ (c\<^isub>2,s\<^isub>2) \ s\<^isub>3 \ (c\<^isub>1;c\<^isub>2, s\<^isub>1) \ s\<^isub>3" +| Semi: "(c\<^sub>1,s\<^sub>1) \ s\<^sub>2 \ (c\<^sub>2,s\<^sub>2) \ s\<^sub>3 \ (c\<^sub>1;c\<^sub>2, s\<^sub>1) \ s\<^sub>3" -| IfTrue: "bval b s \ (c\<^isub>1,s) \ t \ (IF b THEN c\<^isub>1 ELSE c\<^isub>2, s) \ t" -| IfFalse: "\bval b s \ (c\<^isub>2,s) \ t \ (IF b THEN c\<^isub>1 ELSE c\<^isub>2, s) \ t" +| IfTrue: "bval b s \ (c\<^sub>1,s) \ t \ (IF b THEN c\<^sub>1 ELSE c\<^sub>2, s) \ t" +| IfFalse: "\bval b s \ (c\<^sub>2,s) \ t \ (IF b THEN c\<^sub>1 ELSE c\<^sub>2, s) \ t" | WhileFalse: "\bval b s \ (WHILE b DO c,s) \ s" -| WhileTrue: "bval b s\<^isub>1 \ (c,s\<^isub>1) \ s\<^isub>2 \ (WHILE b DO c, s\<^isub>2) \ s\<^isub>3 - \ (WHILE b DO c, s\<^isub>1) \ s\<^isub>3" +| WhileTrue: "bval b s\<^sub>1 \ (c,s\<^sub>1) \ s\<^sub>2 \ (WHILE b DO c, s\<^sub>2) \ s\<^sub>3 + \ (WHILE b DO c, s\<^sub>1) \ s\<^sub>3" code_pred big_step .