]> matita.cs.unibo.it Git - helm.git/blob - helm/gTopLevel/topLevel/esempi.cic
Initial revision
[helm.git] / helm / gTopLevel / topLevel / esempi.cic
1 alias BV                 /Sophia-Antipolis/HARDWARE/GENE/BV/BV.con
2 alias BV_increment       /Sophia-Antipolis/HARDWARE/ADDER/IncrDecr/BV_increment.con
3 alias BV_increment_carry /Sophia-Antipolis/HARDWARE/ADDER/IncrDecr/BV_increment_carry.con
4 alias BV_to_nat          /Sophia-Antipolis/HARDWARE/GENE/BV/BV_to_nat.con
5 alias Exp                /Eindhoven/POCKLINGTON/exp/Exp.con
6 alias IZR                /Coq/Reals/Raxioms/IZR.con
7 alias Int_part           /Coq/Reals/R_Ifp/Int_part.con
8 alias Mod                /Eindhoven/POCKLINGTON/mod/Mod.con
9 alias NEG                /Coq/ZArith/fast_integer/fast_integers/Z.ind#1/1/3
10 alias O                  /Coq/Init/Datatypes/nat.ind#1/1/1
11 alias POS                /Coq/ZArith/fast_integer/fast_integers/Z.ind#1/1/2
12 alias Prime              /Eindhoven/POCKLINGTON/prime/Prime.con
13 alias R                  /Coq/Reals/Rdefinitions/R.con
14 alias R0                 /Coq/Reals/Rdefinitions/R0.con
15 alias R1                 /Coq/Reals/Rdefinitions/R1.con
16 alias Rgt                /Coq/Reals/Rdefinitions/Rgt.con
17 alias Rinv               /Coq/Reals/Rdefinitions/Rinv.con
18 alias Rle                /Coq/Reals/Rdefinitions/Rle.con
19 alias Rlt                /Coq/Reals/Rdefinitions/Rlt.con
20 alias Rminus             /Coq/Reals/Rdefinitions/Rminus.con
21 alias Rmult              /Coq/Reals/Rdefinitions/Rmult.con
22 alias Ropp               /Coq/Reals/Rdefinitions/Ropp.con
23 alias Rplus              /Coq/Reals/Rdefinitions/Rplus.con
24 alias S                  /Coq/Init/Datatypes/nat.ind#1/1/2
25 alias Z                  /Coq/ZArith/fast_integer/fast_integers/Z.ind#1/1
26 alias ZERO               /Coq/ZArith/fast_integer/fast_integers/Z.ind#1/1/1
27 alias ZExp               /Eindhoven/POCKLINGTON/exp/ZExp.con
28 alias Zdiv2              /Coq/ZArith/Zmisc/arith/Zdiv2.con
29 alias Zge                /Coq/ZArith/zarith_aux/Zge.con
30 alias Zle                /Coq/ZArith/zarith_aux/Zle.con
31 alias Zlt                /Coq/ZArith/zarith_aux/Zlt.con
32 alias Zminus             /Coq/ZArith/zarith_aux/Zminus.con
33 alias Zmult              /Coq/ZArith/fast_integer/fast_integers/Zmult.con
34 alias Zodd               /Coq/ZArith/Zmisc/arith/Zodd.con
35 alias Zplus              /Coq/ZArith/fast_integer/fast_integers/Zplus.con
36 alias Zpower_nat         /Coq/omega/Zpower/section1/Zpower_nat.con
37 alias Zpower_pos         /Coq/omega/Zpower/section1/Zpower_pos.con
38 alias Zpred              /Coq/ZArith/zarith_aux/Zpred.con
39 alias Zs                 /Coq/ZArith/zarith_aux/Zs.con
40 alias ad                 /Coq/IntMap/Addr/ad.ind#1/1
41 alias ad_bit             /Coq/IntMap/Addr/ad_bit.con
42 alias ad_double_plus_un  /Coq/IntMap/Addr/ad_double_plus_un.con
43 alias ad_x               /Coq/IntMap/Addr/ad.ind#1/1/2
44 alias ad_xor             /Coq/IntMap/Addr/ad_xor.con
45 alias allex              /Eindhoven/POCKLINGTON/fermat/allex.con
46 alias and                /Coq/Init/Logic/Conjunction/and.ind#1/1
47 alias appbv              /Sophia-Antipolis/HARDWARE/GENE/BV/appbv.con
48 alias bool               /Coq/Init/Datatypes/bool.ind#1/1
49 alias consbv             /Sophia-Antipolis/HARDWARE/GENE/BV/consbv.con
50 alias convert            /Coq/ZArith/fast_integer/fast_integers/convert.con
51 alias div2               /Coq/Arith/Div2/div2.con
52 alias double             /Coq/Arith/Div2/double.con
53 alias eq                 /Coq/Init/Logic/Equality/eq.ind#1/1
54 alias eq_ind             /Coq/Init/Logic/Equality/eq_ind.con
55 alias eq_ind_r           /Coq/Init/Logic/Logic_lemmas/eq_ind_r.con
56 alias eqT                /Coq/Init/Logic_Type/eqT.ind#1/1
57 alias even               /Coq/Arith/Even/even.ind#1/1
58 alias ex                 /Coq/Init/Logic/First_order_quantifiers/ex.ind#1/1
59 alias f_equal            /Coq/Init/Logic/Logic_lemmas/equality/f_equal.con
60 alias iff                /Coq/Init/Logic/Equivalence/iff.con
61 alias le                 /Coq/Init/Peano/le.ind#1/1
62 alias lengthbv           /Sophia-Antipolis/HARDWARE/GENE/BV/lengthbv.con
63 alias lift_rec_r         /Rocq/LAMBDA/Substitution/lift_rec_r.con
64 alias log_inf            /Coq/omega/Zlogarithm/Log_pos/log_inf.con
65 alias log_sup            /Coq/omega/Zlogarithm/Log_pos/log_sup.con
66 alias lt                 /Coq/Init/Peano/lt.con
67 alias mapmult            /Eindhoven/POCKLINGTON/list/mapmult.con
68 alias minus              /Coq/Arith/Minus/minus.con
69 alias mult               /Coq/Init/Peano/mult.con
70 alias nat                /Coq/Init/Datatypes/nat.ind#1/1
71 alias nat_of_ad          /Coq/IntMap/Adalloc/AdAlloc/nat_of_ad.con 
72 alias negb               /Coq/Bool/Bool/negb.con
73 alias nilbv              /Sophia-Antipolis/HARDWARE/GENE/BV/nilbv.con
74 alias not                /Coq/Init/Logic/not.con
75 alias odd                /Coq/Arith/Even/even.ind#1/2
76 alias or                 /Coq/Init/Logic/Disjunction/or.ind#1/1
77 alias permmod            /Eindhoven/POCKLINGTON/fermat/permmod.con
78 alias plus               /Coq/Init/Peano/plus.con
79 alias positive           /Coq/ZArith/fast_integer/fast_integers/positive.ind#1/1
80 alias power2             /Sophia-Antipolis/HARDWARE/GENE/Arith_compl/power2.con
81 alias pred               /Coq/Init/Peano/pred.con
82 alias redexes            /Rocq/LAMBDA/Redexes/redexes.ind#1/1
83 alias shift_nat          /Coq/omega/Zpower/Powers_of_2/shift_nat.con
84 alias shift_pos          /Coq/omega/Zpower/Powers_of_2/shift_pos.con
85 alias subst_rec_r        /Rocq/LAMBDA/Substitution/subst_rec_r.con
86 alias two_p              /Coq/omega/Zpower/Powers_of_2/two_p.con
87 alias until              /Eindhoven/POCKLINGTON/fermat/until.con
88 alias xH                 /Coq/ZArith/fast_integer/fast_integers/positive.ind#1/1/3
89 alias xI                 /Coq/ZArith/fast_integer/fast_integers/positive.ind#1/1/1
90 alias xO                 /Coq/ZArith/fast_integer/fast_integers/positive.ind#1/1/2
91 alias zproduct           /Eindhoven/POCKLINGTON/list/zproduct.con
92
93 !n:nat.(eq nat (mult (S (S O)) n) O);
94 !n:nat.(eq nat (plus O n) (plus n O));
95 !n:nat.!m:nat.(le (mult (S (S O)) n) (mult (S (S O)) m));
96 !p:nat.(eq nat p p)->(eq nat p p);
97 !p:nat.!q:nat.(le p q)->(or (le (S p) q) (eq nat p q));
98 !n:nat.(eq nat (double (S n)) (S (S (double n))));
99 !n:nat.(and (iff (even n) (eq nat (div2 n) (div2 (S n)))) (iff (odd n) (eq nat (S (div2 n)) (div2 (S n)))));
100 !n:nat.!m:nat.!p:nat.(eq nat (minus n m) (minus (plus p n) (plus p m)));
101 !a:Z.!n:nat.(eq Z (Exp a (pred (S n))) (Exp a n));
102 !a:Z.!x:Z.(eq Z (ZExp a (Zminus (Zplus x (POS xH)) (POS xH))) (ZExp a x));
103 !p:nat.!a:Z.(Prime p)->(not (Mod a ZERO p))->(allex p (until (pred p)) (mapmult a (until (pred p))));
104 !a:Z.!n:nat.(eq Z (zproduct (mapmult a (until n))) (Zmult (Exp a n) (zproduct (until n))));
105 !p:nat.!a:Z.(Prime p)->(not (Mod a ZERO p))->(permmod p (until (pred p)) (mapmult a (until (pred p))));
106 !p:nat.(Prime p)->(not (Mod (zproduct (until (pred p))) ZERO p));
107 !p:nat.!n:nat.(lt O n)->(lt n p)->(Prime p)->(not (Mod (zproduct (until n)) ZERO p));
108 !p:positive.(eq nat (convert (xI p)) (S (mult (S (S O)) (convert p))));
109 !a:ad.(eq nat (nat_of_ad (ad_double_plus_un a)) (S (mult (S (S O)) (nat_of_ad a))));
110 !p:positive.!a:ad.(eq bool (ad_bit (ad_xor (ad_x (xI p)) a) O) (negb (ad_bit a O)));
111 !r:R.(and (Rle (IZR (Int_part r)) r) (Rgt (Rminus (IZR (Int_part r)) r) (Ropp R1)));
112 !eps:R.(Rgt eps R0)->(Rlt (Rmult eps (Rinv (Rplus (Rplus R1 R1) (Rplus R1 R1)))) eps);
113 !x:Z.(Zge x ZERO)->(Zodd x)->(eq Z x (Zplus (Zmult (POS (xO xH)) (Zdiv2 x)) (POS xH)));
114 !v:Z.!l1:Z.!l2:Z.!x:positive.(eq Z (Zplus (Zplus (Zmult v (POS x)) l1) (Zplus (Zmult v (NEG x)) l2)) (Zplus l1 l2));
115 !v:Z.!l1:Z.!l2:Z.!x:positive.(eq Z (Zplus (Zplus (Zmult v (NEG x)) l1) (Zplus (Zmult v (POS x)) l2)) (Zplus l1 l2));
116 !p:positive.(and (Zle (two_p (log_inf p)) (POS p)) (Zlt (POS p) (two_p (Zs (log_inf p)))));
117 !x:positive.(and (Zlt (two_p (Zpred (log_sup x))) (POS x)) (Zle (POS x) (two_p (log_sup x))));
118 !n:nat.!x:positive.(eq Z (POS (shift_nat n x)) (Zmult (Zpower_nat (POS (xO xH)) n) (POS x)));
119 !p:positive.!x:positive.(eq Z (POS (shift_pos p x)) (Zmult (Zpower_pos (POS (xO xH)) p) (POS x)));
120 !U:redexes.!V:redexes.!k:nat.!p:nat.!n:nat.(eq redexes (lift_rec_r (subst_rec_r V U p) (plus p n) k) (subst_rec_r (lift_rec_r V (S (plus p n)) k) (lift_rec_r U n k) p));
121 !U:redexes.!V:redexes.!W:redexes.!n:nat.!p:nat.(eq redexes (subst_rec_r (subst_rec_r V U p) W (plus p n)) (subst_rec_r (subst_rec_r V W (S (plus p n))) (subst_rec_r U W n) p));
122 !v:BV.(eq nat (BV_to_nat (appbv (BV_increment v) (consbv (BV_increment_carry v) nilbv))) (S (BV_to_nat v)));
123 !l:BV.!n:BV.(eq nat (BV_to_nat (appbv l n)) (plus (BV_to_nat l) (mult (power2 (lengthbv l)) (BV_to_nat n))));
124 !x:Z.(Zle ZERO x)->(eq Z (Zdiv2 (Zplus (Zmult (POS (xO xH)) x) (POS xH))) x);
125 !n:Z.(Zle (POS xH) n)->(Zle ZERO (Zplus (Zdiv2 (Zminus n (POS (xO xH)))) (POS xH)));