IsarMathLib

Proofs by humans, for humans, formally verified by Isabelle/ZF proof assistant

theory Ring_ZF_1 imports Ring_ZF Group_ZF_3
begin

This theory is devoted to the part of ring theory specific the construction of real numbers in the Real_ZF_x series of theories. The goal is to show that classes of almost homomorphisms form a ring.

The ring of classes of almost homomorphisms

Almost homomorphisms do not form a ring as the regular homomorphisms do because the lifted group operation is not distributive with respect to composition -- we have s(rq)srsq in general. However, we do have s(rq)srsq in the sense of the equivalence relation defined by the group of finite range functions (that is a normal subgroup of almost homomorphisms, if the group is abelian). This allows to define a natural ring structure on the classes of almost homomorphisms.

The next lemma provides a formula useful for proving that two sides of the distributive law equation for almost homomorphisms are almost equal.

lemma (in group1) Ring_ZF_1_1_L1:

assumes A1: sAH, rAH, qAH and A2: nG

shows ((s(rq))(n))(((sr)(sq))(n))1=δ(s,r(n),q(n)), ((rq)s)(n)=((rs)(qs))(n)proof

The sides of the distributive law equations for almost homomorphisms are almost equal.

lemma (in group1) Ring_ZF_1_1_L2:

assumes A1: sAH, rAH, qAH

shows s(rq)(sr)(sq), (rq)s=(rs)(qs)proof

The essential condition to show the distributivity for the operations defined on classes of almost homomorphisms.

lemma (in group1) Ring_ZF_1_1_L3:

assumes A1: R=QuotientGroupRel(AH,Op1,FR) and A2: aAH//R, bAH//R, cAH//R and A3: A=ProjFun2(AH,R,Op1), M=ProjFun2(AH,R,Op2)

shows Ma,Ab,c=AMa,b,Ma,c MAb,c,a=AMb,a,Mc,aproof

The projection of the first group operation on almost homomorphisms is distributive with respect to the second group operation.

lemma (in group1) Ring_ZF_1_1_L4:

assumes A1: R=QuotientGroupRel(AH,Op1,FR) and A2: A=ProjFun2(AH,R,Op1), M=ProjFun2(AH,R,Op2)

shows IsDistributive(AH//R,A,M)proof

The classes of almost homomorphisms form a ring.

theorem (in group1) Ring_ZF_1_1_T1:

assumes R=QuotientGroupRel(AH,Op1,FR) and A=ProjFun2(AH,R,Op1), M=ProjFun2(AH,R,Op2)

shows IsAring(AH//R,A,M) using assms, QuotientGroupOp_def, Group_ZF_3_3_T1, Group_ZF_3_4_T2, Ring_ZF_1_1_L4, IsAring_def
end