ZARITH

This theory is the equivalent for Z of the Arith theory for naturals.

Definitions

Zs :
Z -> Z.
Zpred :
Z -> Z.
Zmin :
Z -> Z -> Z.
Zminus :
Z -> Z -> Z.

Zlt :
Z -> Z -> Prop.
Zgt :
Z -> Z -> Prop.
Zle :
Z -> Z -> Prop.
Zge :
Z -> Z -> Prop.

absolu :
Z -> nat.
inject_nat :
nat -> Z.

Theorems

Gt

Zgt_Sn_n :
(n:Z)(Zgt (Zs n) n).
Zle_gt_trans :
(n,m,p:Z)(Zle m n)->(Zgt m p)->(Zgt n p).
Zgt_le_trans :
(n,m,p:Z)(Zgt n m)->(Zle p m)->(Zgt n p).
Zle_S_gt :
(n,m:Z) (Zle (Zs n) m) -> (Zgt m n).
Zgt_n_S :
(n,m:Z)(Zgt m n) -> (Zgt (Zs m) (Zs n)).
Zle_not_gt :
(n,m:Z)(Zle n m)->~(Zgt n m).
Zgt_antirefl :
(n:Z)~(Zgt n n).
Zgt_not_sym :
(n,m:Z)(Zgt n m)->~(Zgt m n).
Zgt_not_le :
(n,m:Z)(Zgt n m)->~(Zle n m).
Zgt_trans :
(n,m,p:Z)(Zgt n m)->(Zgt m p)->(Zgt n p).
Zle_gt_S :
(n,p:Z)(Zle n p)->(Zgt (Zs p) n).
Zgt_pred :
(n,p:Z)(Zgt p (Zs n))->(Zgt (Zpred p) n).
Zsimpl_gt_plus_l :
(n,m,p:Z)(Zgt (Zplus p n) (Zplus p m))->(Zgt n m).
Zgt_reg_l :
(n,m,p:Z)(Zgt n m)->(Zgt (Zplus p n) (Zplus p m)).
Zgt_S_n :
(n,p:Z)(Zgt (Zs p) (Zs n))->(Zgt p n).
Zle_n_S :
(n,m:Z) (Zle m n) -> (Zle (Zs m) (Zs n)).
Zle_S_n :
(n,m:Z) (Zle (Zs m) (Zs n)) -> (Zle m n).
Zgt_le_S :
(n,p:Z)(Zgt p n)->(Zle (Zs n) p).
Zgt_S_le :
(n,p:Z)(Zgt (Zs p) n)->(Zle n p).
Zgt_S :
(n,m:Z)(Zgt (Zs n) m)->((Zgt n m)\/(m=n)).
Zgt_trans_S :
(n,m,p:Z)(Zgt (Zs n) m)->(Zgt m p)->(Zgt n p).

Peano

Zeq_S :
(n,m:Z) n=m -> (Zs n)=(Zs m).
Zpred_Sn :
(m:Z) m=(Zpred (Zs m)).
Zeq_add_S :
(n,m:Z) (Zs n)=(Zs m) -> n=m.
Znot_eq_S :
(n,m:Z) ~(n=m) -> ~((Zs n)=(Zs m)).
Zsimpl_plus_l :
(n,m,p:Z)(Zplus n m)=(Zplus n p)->m=p.
Zn_Sn :
(n:Z) ~(n=(Zs n)).
Zplus_n_O :
(n:Z) n=(Zplus n (0)).
Zplus_n_Sm :
(n,m:Z) (Zs (Zplus n m))=(Zplus n (Zs m)).
Zmult_n_O :
(n:Z) (0)=(Zmult n (0)).
Zmult_n_Sm :
(n,m:Z) (Zplus (Zmult n m) n)=(Zmult n (Zs m)).

Le

Zle_n :
(n:Z) (Zle n n).
Zle_trans :
(n,m,p:Z)(Zle n m)->(Zle m p)->(Zle n p).
Zle_n_Sn :
(n:Z)(Zle n (Zs n)).
Zs_pred :
(n:Z) n=(Zs (Zpred n)).
Zle_pred_n :
(n:Z)(Zle (Zpred n) n).
Zle_trans_S :
(n,m:Z)(Zle (Zs n) m)->(Zle n m).
Zle_Sn_n :
(n:Z)~(Zle (Zs n) n).
Zle_antisym :
(n,m:Z)(Zle n m)->(Zle m n)->(n=m).
Zge_le :
(m,n:Z) (Zge m n) -> (Zle n m).
Zle_ge :
(m,n:Z) (Zle m n) -> (Zge n m).

Lt

Zgt_lt :
(m,n:Z) (Zgt m n) -> (Zlt n m).
Zlt_gt :
(m,n:Z) (Zlt m n) -> (Zgt n m).
Zlt_n_Sn :
(n:Z)(Zlt n (Zs n)).
Zlt_S :
(n,m:Z)(Zlt n m)->(Zlt n (Zs m)).
Zlt_n_S :
(n,m:Z)(Zlt n m)->(Zlt (Zs n) (Zs m)).
Zlt_S_n :
(n,m:Z)(Zlt (Zs n) (Zs m))->(Zlt n m).
Zlt_n_n :
(n:Z)~(Zlt n n).
Zlt_pred :
(n,p:Z)(Zlt (Zs n) p)->(Zlt n (Zpred p)).
Zlt_pred_n_n :
(n:Z)(Zlt (Zpred n) n).
Zlt_le_S :
(n,p:Z)(Zlt n p)->(Zle (Zs n) p).
Zlt_n_Sm_le :
(n,m:Z)(Zlt n (Zs m))->(Zle n m).
Zle_lt_n_Sm :
(n,m:Z)(Zle n m)->(Zlt n (Zs m)).
Zlt_le_weak :
(n,m:Z)(Zlt n m)->(Zle n m).
Zlt_trans :
(n,m,p:Z)(Zlt n m)->(Zlt m p)->(Zlt n p).
Zlt_le_trans :
(n,m,p:Z)(Zlt n m)->(Zle m p)->(Zlt n p).
Zle_lt_trans :
(n,m,p:Z)(Zle n m)->(Zlt m p)->(Zlt n p).
Zle_lt_or_eq :
(n,m:Z)(Zle n m)->((Zlt n m) \/ n=m).
Zle_or_lt :
(n,m:Z)((Zle n m)\/(Zlt m n)).
Zle_not_lt :
(n,m:Z)(Zle n m)->~(Zlt m n).
Zlt_not_le :
(n,m:Z)(Zlt n m)->~(Zle m n).
Zlt_not_sym :
(n,m:Z)(Zlt n m)->~(Zlt m n).

Min

Zmin_SS :
(n,m:Z)((Zs (Zmin n m))=(Zmin (Zs n) (Zs m))).
Zle_min_l :
(n,m:Z)(Zle (Zmin n m) n).
Zle_min_r :
(n,m:Z)(Zle (Zmin n m) m).
Zmin_case :
(n,m:Z)(P:Z->Set)(P n)->(P m)->(P (Zmin n m)).

Plus

Zplus_assoc_l :
(n,m,p:Z)((Zplus n (Zplus m p))=(Zplus (Zplus n m) p)).
Zplus_assoc_r :
(n,m,p:Z)(Zplus (Zplus n m) p) =(Zplus n (Zplus m p)).
Zplus_permute :
(n,m,p:Z) (Zplus n (Zplus m p))=(Zplus m (Zplus n p)).
Zsimpl_le_plus_l :
(p,n,m:Z)(Zle (Zplus p n) (Zplus p m))->(Zle n m).
Zle_reg_l :
(n,m,p:Z)(Zle n m)->(Zle (Zplus p n) (Zplus p m)).
Zle_reg_r :
(a,b,c:Z) (Zle a b)->(Zle (Zplus a c) (Zplus b c)).
Zle_plus_plus :
(n,m,p,q:Z) (Zle n m)->(Zle p q)->(Zle (Zplus n p) (Zplus m q)).
Zplus_Snm_nSm :
(n,m:Z)(Zplus (Zs n) m)=(Zplus n (Zs m)).
Zsimpl_lt_plus_l :
(n,m,p:Z)(Zlt (Zplus p n) (Zplus p m))->(Zlt n m).
Zlt_reg_l :
(n,m,p:Z)(Zlt n m)->(Zlt (Zplus p n) (Zplus p m)).

Minus

Zminus_plus_simpl :
(n,m,p:Z)((Zminus n m)=(Zminus (Zplus p n) (Zplus p m))).
Zminus_n_O :
(n:Z)(n=(Zminus n (0))).
Zminus_n_n :
(n:Z)((0)=(Zminus n n)).
Zplus_minus :
(n,m,p:Z)(n=(Zplus m p))->(p=(Zminus n m)).
Zminus_plus :
(n,m:Z)(Zminus (Zplus n m) n)=m.
Zle_plus_minus :
(n,m:Z) (Zplus n (Zminus m n))=m.
Zminus_Sn_m :
(n,m:Z)((Zs (Zminus n m))=(Zminus (Zs n) m)).
Zlt_minus :
(n,m:Z)(Zlt (0) m)->(Zlt (Zminus n m) n).
Zlt_O_minus_lt :
(n,m:Z)(Zlt (0) (Zminus n m))->(Zlt m n).

Mult

Zmult_plus_distr :
(n,m,p:Z)((Zmult (Zplus n m) p)=(Zplus (Zmult n p) (Zmult m p))).
Zmult_plus_distr_r :
(x,y,z:Z) (Zmult x (Zplus y z)) = (Zplus (Zmult x y) (Zmult x z)).
Zmult_minus_distr :
(n,m,p:Z)((Zmult (Zminus n m) p)=(Zminus (Zmult n p) (Zmult m p))).
Zmult_assoc_r :
(n,m,p:Z)((Zmult (Zmult n m) p) = (Zmult n (Zmult m p))).
Zmult_assoc_l :
(n,m,p:Z)(Zmult n (Zmult m p)) = (Zmult (Zmult n m) p).
Zmult_1_n :
(n:Z)(Zmult (1) n)=n.
Zmult_n_1 :
(n:Z)(Zmult n (1))=n.
Zmult_Sm_n :
(n,m:Z) (Zplus (Zmult n m) m)=(Zmult (Zs n) m).