initial
[prop.git] / demos / logic3.ph
blob0a7bb0d2ab33cfb6e6f1079a0a66098cb6023149
1 #ifndef logic3_demo_h
2 #define logic3_demo_h
4 #include <stdlib.h>
5 #include <AD/strings/quark.h>
7 datatype Wff :: rewrite
8    = True             
9    | False             
10    | Var (class Quark)  =>  _
11    | Op  (class Quark, Wff, Wff) => "(" 2 1 3 ")"
12    | Not (Wff)          => "not(" _ ")"
14 law 
15     inline And(a,b)     = Op(#"and",a,b)
16 and inline Or(a,b)      = Op(#"or",a,b)
17 and inline Implies(a,b) = Op(#"->",a, b)
18 and inline Xor(a,b)     = Op(#"xor",a,b)
19 and inline Equiv(a,b)   = Op(#"<->",a,b)
22 #endif