equal
deleted
inserted
replaced
9 |
9 |
10 PropLog = Finite + Datatype + |
10 PropLog = Finite + Datatype + |
11 |
11 |
12 (** The datatype of propositions; note mixfix syntax **) |
12 (** The datatype of propositions; note mixfix syntax **) |
13 consts |
13 consts |
14 prop :: "i" |
14 prop :: i |
15 |
15 |
16 datatype |
16 datatype |
17 "prop" = Fls |
17 "prop" = Fls |
18 | Var ("n: nat") ("#_" [100] 100) |
18 | Var ("n: nat") ("#_" [100] 100) |
19 | "=>" ("p: prop", "q: prop") (infixr 90) |
19 | "=>" ("p: prop", "q: prop") (infixr 90) |
20 |
20 |
21 (** The proof system **) |
21 (** The proof system **) |
22 consts |
22 consts |
23 thms :: "i => i" |
23 thms :: i => i |
24 "|-" :: "[i,i] => o" (infixl 50) |
24 "|-" :: [i,i] => o (infixl 50) |
25 |
25 |
26 translations |
26 translations |
27 "H |- p" == "p : thms(H)" |
27 "H |- p" == "p : thms(H)" |
28 |
28 |
29 inductive |
29 inductive |
37 type_intrs "prop.intrs" |
37 type_intrs "prop.intrs" |
38 |
38 |
39 |
39 |
40 (** The semantics **) |
40 (** The semantics **) |
41 consts |
41 consts |
42 prop_rec :: "[i, i, i=>i, [i,i,i,i]=>i] => i" |
42 prop_rec :: [i, i, i=>i, [i,i,i,i]=>i] => i |
43 is_true :: "[i,i] => o" |
43 is_true :: [i,i] => o |
44 "|=" :: "[i,i] => o" (infixl 50) |
44 "|=" :: [i,i] => o (infixl 50) |
45 hyps :: "[i,i] => i" |
45 hyps :: [i,i] => i |
46 |
46 |
47 defs |
47 defs |
48 |
48 |
49 prop_rec_def |
49 prop_rec_def |
50 "prop_rec(p,b,c,h) == |
50 "prop_rec(p,b,c,h) == |