match b with
[ true \Rightarrow false
| false \Rightarrow true ].
-
+
+(* FG: interpretation right after definition *)
+interpretation "boolean not" 'not x = (notb x).
+
theorem notb_elim: \forall b:bool.\forall P:bool \to Prop.
match b with
[ true \Rightarrow P false
assumption.
qed.
-interpretation "boolean not" 'not x = (notb x).
-
definition andb : bool \to bool \to bool\def
\lambda b1,b2:bool.
match b1 with
[ true \Rightarrow true
| false \Rightarrow b2].
+(* FG: interpretation right after definition *)
+interpretation "boolean or" 'or x y = (orb x y).
+
theorem orb_elim: \forall b1,b2:bool. \forall P:bool \to Prop.
match b1 with
[ true \Rightarrow P true
intros 3.elim b1.exact H. exact H.
qed.
-interpretation "boolean or" 'or x y = (orb x y).
-
definition if_then_else : bool \to Prop \to Prop \to Prop \def
\lambda b:bool.\lambda P,Q:Prop.
match b with