]> matita.cs.unibo.it Git - helm.git/commitdiff
Reorganization of the library.
authorAndrea Asperti <andrea.asperti@unibo.it>
Fri, 12 Oct 2007 09:58:25 +0000 (09:58 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Fri, 12 Oct 2007 09:58:25 +0000 (09:58 +0000)
helm/software/matita/library/datatypes/bool.ma

index 37a2a377d6fd39320fc8dfbdeeb1820de0fd1b25..953471191b1ddb8b215c34998df0ed9822890c16 100644 (file)
@@ -15,6 +15,7 @@
 set "baseuri" "cic:/matita/datatypes/bool/".
 
 include "logic/equality.ma".
+include "higher_order_defs/functions.ma".
 
 inductive bool : Set \def 
   | true : bool
@@ -53,6 +54,20 @@ match b with
 intros 2.elim b.exact H. exact H.
 qed.
 
+theorem notb_notb: \forall b:bool. notb (notb b) = b.
+intros.
+elim b;reflexivity.
+qed.
+
+theorem injective_notb: injective bool bool notb.
+unfold injective.
+intros.
+rewrite < notb_notb.
+rewrite < (notb_notb y).
+apply eq_f.
+assumption.
+qed.
+
 (*CSC: the URI must disappear: there is a bug now *)
 interpretation "boolean not" 'not x = (cic:/matita/datatypes/bool/notb.con x).
 
@@ -72,6 +87,18 @@ match b1 with
 intros 3.elim b1.exact H. exact H.
 qed.
 
+theorem and_true: \forall a,b:bool. 
+andb a b =true \to a =true \land b= true.
+intro.elim a
+  [split
+    [reflexivity|assumption]
+  |apply False_ind.
+   apply not_eq_true_false.
+   apply sym_eq.
+   assumption
+  ]
+qed.
+
 theorem andb_true_true: \forall b1,b2. (b1 \land b2) = true \to b1 = true.
 intro. elim b1.
 reflexivity.