src/ZF/ex/PropLog.thy
changeset 1478 2b8c2a7547ab
parent 1401 0c439768f45c
child 3840 e0baea4d485a
equal deleted inserted replaced
1477:4c51ab632cda 1478:2b8c2a7547ab
     1 (*  Title: 	ZF/ex/PropLog.thy
     1 (*  Title:      ZF/ex/PropLog.thy
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author: 	Tobias Nipkow & Lawrence C Paulson
     3     Author:     Tobias Nipkow & Lawrence C Paulson
     4     Copyright   1993  University of Cambridge
     4     Copyright   1993  University of Cambridge
     5 
     5 
     6 Datatype definition of propositional logic formulae and inductive definition
     6 Datatype definition of propositional logic formulae and inductive definition
     7 of the propositional tautologies.
     7 of the propositional tautologies.
     8 *)
     8 *)
    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
    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