Definition: mdivides
b | a ==  ∃c:|g|. (a = (b * c) ∈ |g|)
Lemma: mdivides_wf
∀g:GrpSig. ∀a,b:|g|.  (a | b ∈ ℙ)
Lemma: comb_for_mdivides_wf
λg,a,b,z. (a | b) ∈ g:GrpSig ⟶ a:|g| ⟶ b:|g| ⟶ (↓True) ⟶ ℙ
Definition: rev_mdivides
a |by b in g ==  b | a
Lemma: rev_mdivides_wf
∀g:GrpSig. ∀a,b:|g|.  (a |by b in g ∈ ℙ)
Lemma: mdivides_id
∀g:IAbMonoid. ∀a:|g|.  (e | a)
Lemma: mdivides_refl
∀g:IAbMonoid. ∀a:|g|.  (a | a)
Lemma: mdivides_trans
∀g:IAbMonoid. ∀a,b,c:|g|.  ((a | b) 
⇒ (b | c) 
⇒ (a | c))
Lemma: mdivides_preorder
∀g:IAbMonoid. Preorder(|g|;x,y.x | y)
Lemma: mdivides_cancel
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a,b,c:|g|.  (((a * b) | (a * c)) 
⇒ (b | c))))
Definition: munit
g-unit(u) ==  u | e
Lemma: munit_wf
∀g:GrpSig. ∀a:|g|.  (g-unit(a) ∈ ℙ)
Definition: massoc
a ~ b ==  Symmetrize(x,y.x | y;a;b)
Lemma: massoc_wf
∀g:GrpSig. ∀a,b:|g|.  (a ~ b ∈ ℙ)
Lemma: munit_char
∀g:IAbMonoid. ∀a:|g|.  (g-unit(a) 
⇐⇒ a ~ e)
Lemma: munit_of_op
∀g:IAbMonoid. ∀a,b:|g|.  ((g-unit(a * b)) 
⇒ ((g-unit(a)) ∧ (g-unit(b))))
Definition: mpdivides
a p| b ==  (a | b) ∧ (¬(b | a))
Lemma: mpdivides_wf
∀g:GrpSig. ∀a,b:|g|.  (a p| b ∈ ℙ)
Lemma: non_munit_diff_imp_mpdivides
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a,b,c:|g|.  ((¬(g-unit(b))) 
⇒ ((a * b) = c ∈ |g|) 
⇒ (a p| c))))
Lemma: comb_for_massoc_wf
λg,a,b,z. (a ~ b) ∈ g:GrpSig ⟶ a:|g| ⟶ b:|g| ⟶ (↓True) ⟶ ℙ
Lemma: mdivides_weakening
∀g:IAbMonoid. ∀a,b:|g|.  ((a ~ b) 
⇒ (a | b))
Lemma: massoc_equiv_rel
∀g:IAbMonoid. EquivRel(|g|;x,y.x ~ y)
Lemma: massoc_weakening
∀g:IAbMonoid. ∀a,b:|g|.  ((a = b ∈ |g|) 
⇒ (a ~ b))
Lemma: massoc_inversion
∀g:IAbMonoid. ∀a,b:|g|.  ((a ~ b) 
⇒ (b ~ a))
Lemma: massoc_transitivity
∀g:IAbMonoid. ∀a,b,c:|g|.  ((a ~ b) 
⇒ (b ~ c) 
⇒ (a ~ c))
Lemma: grp_op_ap2_functionality_wrt_mdivides
∀g:IAbMonoid. ∀a,a',b,b':|g|.  ((a | b) 
⇒ (a' | b') 
⇒ ((a * a') | (b * b')))
Lemma: grp_op_ap2_functionality_wrt_massoc
∀g:IAbMonoid. ∀a,a',b,b':|g|.  ((a ~ b) 
⇒ (a' ~ b') 
⇒ ((a * a') ~ (b * b')))
Lemma: grp_op_functionality_wrt_massoc
∀g:IAbMonoid. ∀a,a',b,b':|g|.  ((a ~ b) 
⇒ (a' ~ b') 
⇒ ((a * a') ~ (b * b')))
Lemma: massoc_functionality_wrt_massoc
∀g:IAbMonoid. ∀a,a',b,b':|g|.  ((a ~ b) 
⇒ (a' ~ b') 
⇒ (a ~ a' 
⇐⇒ b ~ b'))
Lemma: massoc_cancel
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a,b,c:|g|.  (((a * b) ~ (a * c)) 
⇒ (b ~ c))))
Lemma: massoc_imp_unit_diff
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a,b:|g|.  ((a ~ b) 
⇒ (∃u:|g|. ((g-unit(u)) c∧ (a = (u * b) ∈ |g|))))))
Definition: mprime
IsPrime(a) ==  (¬(g-unit(a))) ∧ (∀b,c:|g|.  ((a | (b * c)) 
⇒ ((a | b) ∨ (a | c))))
Lemma: mprime_wf
∀g:GrpSig. ∀a:|g|.  (IsPrime(a) ∈ ℙ)
Definition: mprime_ty
Prime(g) ==  {x:|g|| IsPrime(x)} 
Lemma: mprime_ty_wf
∀g:GrpSig. (Prime(g) ∈ Type)
Lemma: sq_stable__mprime
∀g:GrpSig. ((∀a,b:|g|.  Dec(a | b)) 
⇒ (∀c:|g|. SqStable(IsPrime(c))))
Lemma: mproper_div_cond
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a,b:|g|.  (((a * b) | a) 
⇒ (g-unit(b)))))
Definition: mreducible
Reducible(a) ==  ∃b,c:|g|. ((¬(g-unit(b))) ∧ (¬(g-unit(c))) ∧ (a = (b * c) ∈ |g|))
Lemma: mreducible_wf
∀g:GrpSig. ∀a:|g|.  (Reducible(a) ∈ ℙ)
Lemma: mreducible_elim
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a:|g|. (Reducible(a) 
⇐⇒ ∃b:|g|. ((¬(g-unit(b))) ∧ (b p| a)))))
Definition: matomic
Atomic(a) ==  (¬(g-unit(a))) ∧ (¬Reducible(a))
Lemma: matomic_wf
∀g:GrpSig. ∀a:|g|.  (Atomic(a) ∈ ℙ)
Lemma: mdivisor_of_atom_is_assoc2
∀g:IAbMonoid. ((∀a,b:|g|.  Stable{a | b}) 
⇒ (∀a,b:|g|.  ((¬(g-unit(a))) 
⇒ Atomic(b) 
⇒ (a | b) 
⇒ (a ~ b))))
Definition: matom_ty
Atom{g} ==  {a:|g|| Atomic(a)} 
Lemma: matom_ty_wf
∀g:GrpSig. (Atom{g} ∈ Type)
Lemma: matom_ty_properties
∀g:GrpSig. ∀a:Atom{g}.  Atomic(a)
Lemma: mcomp_imp_not_unit
∀g:IAbMonoid. ∀a:|g|.  (Reducible(a) 
⇒ (¬(g-unit(a))))
Lemma: mprime_imp_matomic
∀g:IAbMonoid. (Cancel(|g|;|g|;*) 
⇒ (∀a:|g|. (IsPrime(a) 
⇒ Atomic(a))))
Lemma: mprime_divs_list_el
∀g:IAbMonoid. ∀p:|g|.  (IsPrime(p) 
⇒ (∀as:|g| List. ((p | (Π as)) 
⇒ (∃i:ℕ||as||. (p | as[i])))))
Definition: permr_massoc
as ≡ bs upto ~ ==  as ≡ bs upto x,y.x ~ y 
Lemma: permr_massoc_wf
∀g:GrpSig. ∀as,bs:|g| List.  (as ≡ bs upto ~ ∈ ℙ)
Lemma: permr_massoc_weakening
∀g:IAbMonoid. ∀as,bs:|g| List.  ((as ≡(|g|) bs) 
⇒ as ≡ bs upto ~)
Lemma: permr_massoc_functionality
∀g:IAbMonoid. ∀as,as',bs,bs':|g| List.  (as ≡ bs upto ~ 
⇒ as' ≡ bs' upto ~ 
⇒ (as ≡ as' upto ~ 
⇐⇒ bs ≡ bs' upto ~))
Lemma: cons_functionality_wrt_permr_massoc
∀g:IAbMonoid. ∀a,b:|g|. ∀as,bs:|g| List.  ((a ~ b) 
⇒ as ≡ bs upto ~ 
⇒ [a / as] ≡ [b / bs] upto ~)
Lemma: mfact_exists
∀g:IAbMonoid
  (Cancel(|g|;|g|;*)
  
⇒ WellFnd{i}(|g|;x,y.x p| y)
  
⇒ (∀c:|g|. Dec(Reducible(c)))
  
⇒ (∀b:|g|. ((¬(g-unit(b))) 
⇒ (∃as:Atom{g} List. (b = (Π as) ∈ |g|)))))
Lemma: mfact_exists_a
∀g:IAbMonoid
  (Cancel(|g|;|g|;*)
  
⇒ WellFnd{i}(|g|;x,y.x p| y)
  
⇒ (∀c:|g|. Dec(Reducible(c)))
  
⇒ (∀c:|g|. Dec(g-unit(c)))
  
⇒ (∀b:|g|. ∃as:Atom{g} List. (b ~ (Π as))))
Lemma: unique_mfact
∀g:IAbMonoid
  (Cancel(|g|;|g|;*) 
⇒ (∀a,b:|g|.  Dec(a | b)) 
⇒ (∀ps,qs:Prime(g) List.  (((Π ps) ~ (Π qs)) 
⇒ ps ≡ qs upto ~)))
Definition: uni_sat_upto
a r !x:T. Q[x]  ==  Q[a] ∧ (∀a':T. (Q[a'] 
⇒ (a' [r] a)))
Lemma: uni_sat_upto_wf
∀T:Type. ∀r:T ⟶ T ⟶ ℙ. ∀a:T. ∀Q:T ⟶ ℙ.  (a r !x:T. Q[x]  ∈ ℙ)
Definition: exists_uni_upto
(r)∃!x:T. Q[x] ==  ∃a:T. a r !x:T. Q[x] 
Lemma: exists_uni_upto_char
∀T:Type. ∀r:T ⟶ T ⟶ ℙ. ∀Q:T ⟶ ℙ.  ((∃x:T. Q[x]) 
⇒ (∀x,y:T.  (Q[x] 
⇒ Q[y] 
⇒ (x [r] y))) 
⇒ (r)∃!x:T. Q[x])
Lemma: exists_uni_upto_wf
∀T:Type. ∀r:T ⟶ T ⟶ ℙ. ∀Q:T ⟶ ℙ.  ((r)∃!x:T. Q[x] ∈ ℙ)
Definition: permr_massoc_rel
≡~ ==  as,bs:|g| List. as ≡ bs upto ~
Lemma: permr_massoc_rel_wf
∀g:GrpSig. (≡~ ∈ (|g| List) ⟶ (|g| List) ⟶ ℙ)
Definition: is_ufm
IsUFM(g) ==  ∀b:|g|. ((¬(g-unit(b))) 
⇒ (≡~)∃!as:Atom{g} List. (b = (Π as) ∈ |g|))
Lemma: is_ufm_wf
∀g:IMonoid. (IsUFM(g) ∈ ℙ)
Lemma: ufm_char
∀g:IAbMonoid
  (Cancel(|g|;|g|;*)
  
⇒ WellFnd{i}(|g|;x,y.x p| y)
  
⇒ (∀a:Atom{g}. IsPrime(a))
  
⇒ (∀a:|g|. Dec(Reducible(a)))
  
⇒ (∀a,b:|g|.  Dec(a | b))
  
⇒ IsUFM(g))
Definition: posint_mul_mon
<ℤ+,*> ==  <ℕ+, λx,y. (x =z y), λx,y. x ≤z y, λx,y. (x * y), 1, λx.x>
Lemma: posint_mul_mon_wf
<ℤ+,*> ∈ AbMon
Lemma: posint_cancel
Cancel(|<ℤ+,*>|;|<ℤ+,*>|;*)
Lemma: posint_munit_elim
∀a:|<ℤ+,*>|. (<ℤ+,*>-unit(a) 
⇐⇒ a = 1 ∈ ℤ)
Lemma: posint_well_fnd
WellFnd{i}(|<ℤ+,*>|;x,y.x p| y)
Lemma: posint_reduc_dec
∀a:|<ℤ+,*>|. Dec(Reducible(a))
Lemma: posint_unit_dec
∀a:|<ℤ+,*>|. Dec(<ℤ+,*>-unit(a))
Lemma: posint_div_dec
∀a,b:|<ℤ+,*>|.  Dec(a | b)
Lemma: posint_atom_imp_prime
∀a:Atom{<ℤ+,*>}. IsPrime(a)
Lemma: posint_fact_exists
∀i:ℕ+. (∃ps:{j:ℕ+| prime(j)}  List [(i = (Π ps) ∈ ℤ)])
Lemma: posint_is_ufm
IsUFM(<ℤ+,*>)
Home
Index