Коммутативность кольцевого умножения

This commit is contained in:
2022-05-31 22:46:26 +03:00
parent c72b985317
commit 74aa754c5e

24
RingMult Normal file
View File

@@ -0,0 +1,24 @@
Record int_bipart : Set := {pneg : nat; ppos : nat}.
Notation "a !+ b" := (Peano.plus a b) (at level 50, left associativity).
Definition plus a b := Build_int_bipart
(pneg a !+ pneg b) (ppos a !+ ppos b).
Notation "a + b" := (plus a b).
Definition int_bipart_eq_part
: forall an bn, an = bn -> forall ap bp, ap = bp
-> Build_int_bipart an ap = Build_int_bipart bn bp.
Proof.
refine (fun _ _ eqn _ _ eqp => _).
refine (eq_ind _ (fun n => _ = Build_int_bipart n _) _ _ eqn).
refine (f_equal _ eqp).
Qed.
Require Import ArithRing.
Definition mult_comm : forall n m, n * m = m * n.
Proof.
refine (fun n m => int_bipart_eq_part _ _ _ _ _ _); simpl; ring.
Qed.