src/ZF/ex/PropLog.thy
changeset 1401 0c439768f45c
parent 1155 928a16e02f9f
child 1478 2b8c2a7547ab
equal deleted inserted replaced
1400:5d909faf0e04 1401:0c439768f45c
     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) ==