模块
Mathlib.Algebra.Group.SecondIsomorphism.Image
npa-mathlib
包
2
模块
63
定理
750
声明
1016
非可信 sidecar
源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。
定理
6
定义
2
归纳类型
0
公理
1
声明
SecondIsoImagePred
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
SecondIsoProductQuotPred
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_image_intro
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_image_elim
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_product_quot_intro
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_product_quot_elim
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_image_to_product_quot
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
second_iso_product_quot_to_image
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop...
Eq.rec
哈希
- source
- sha256:16fba1a4324b21865d566b8bf9085ed7ad2f4e558ea1eaa2ee40616d5ee37299
- certificateFile
- sha256:53383f558f81ca4d1b1befad3b73417751d1e87a8f1d049c3689568812d17a92
- export
- sha256:46ca9c9bc448f734b59cb23ec561f9792a086a5cb7c24b51289927b2df28b674
- axiomReport
- sha256:e223c3fab423c0c22975a4f6493b66825b610b147c89f817df22b9119a74a170
- certificate
- sha256:3c5d1a2421041b1cdb3e8b7e2465487155389e98b426107c055da7db37efb623
源文本
import Std.Logic.Eq
import Mathlib.Logic.EqReasoning
import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Subgroup
import Mathlib.Algebra.Group.Quotient
import Mathlib.Algebra.Group.Quotient.Mul
import Mathlib.Algebra.Group.Quotient.Group
import Mathlib.Algebra.Group.SecondIsomorphism.Map
def SecondIsoImagePred.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), Prop :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => forall (P : Prop), forall (mk : forall (h : G), forall (hh : Hpred h), forall (eq_phi : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) q), P), P
def SecondIsoProductQuotPred.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), Prop :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => forall (P : Prop), forall (mk : forall (x : G), forall (hx : @SubgroupProductPred.{succ u} G mul Hpred N x), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x) q), P), P
theorem second_iso_image_intro.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (h : G), forall (hh : Hpred h), @SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun h => fun hh => fun (P : Prop) => fun (mk : forall (h2 : G), forall (hh2 : Hpred h2), forall (eq_phi : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h2 hh2) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh)), P) => mk h hh (@Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh))
theorem second_iso_image_elim.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), forall (img : @SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred q), forall (P : Prop), forall (mk : forall (h : G), forall (hh : Hpred h), forall (eq_phi : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) q), P), P :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => fun img => fun P => fun mk => img P mk
theorem second_iso_product_quot_intro.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), forall (x : G), forall (hx : @SubgroupProductPred.{succ u} G mul Hpred N x), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x) q), @SecondIsoProductQuotPred.{u} G one mul inv N group_args normal_args Hpred q :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => fun x => fun hx => fun eq_q => fun (P : Prop) => fun (mk : forall (x2 : G), forall (hx2 : @SubgroupProductPred.{succ u} G mul Hpred N x2), forall (eq_q2 : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x2) q), P) => mk x hx eq_q
theorem second_iso_product_quot_elim.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), forall (prod : @SecondIsoProductQuotPred.{u} G one mul inv N group_args normal_args Hpred q), forall (P : Prop), forall (mk : forall (x : G), forall (hx : @SubgroupProductPred.{succ u} G mul Hpred N x), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x) q), P), P :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => fun prod => fun P => fun mk => prod P mk
theorem second_iso_image_to_product_quot.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), forall (img : @SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred q), @SecondIsoProductQuotPred.{u} G one mul inv N group_args normal_args Hpred q :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => fun img => img (@SecondIsoProductQuotPred.{u} G one mul inv N group_args normal_args Hpred q) (fun (h : G) => fun (hh : Hpred h) => fun (eq_phi : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) q) => @second_iso_product_quot_intro.{u} G one mul inv N group_args normal_args Hpred q h (@subgroup_product_intro.{succ u} G mul Hpred N h h one hh (@subgroup_one.{succ u} G one mul inv N (@normal_subgroup_laws.{succ u} G one mul inv N normal_args)) (@group_mul_one.{succ u} G one mul inv group_args h)) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args h) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) q (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) (@NormalQuotMk.{u} G one mul inv N group_args normal_args h) (@second_iso_phi_mk.{u} G one mul inv N group_args normal_args Hpred h hh)) eq_phi))
theorem second_iso_product_quot_to_image.{u} :
forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (q : @NormalQuot.{u} G one mul inv N group_args normal_args), forall (prod : @SecondIsoProductQuotPred.{u} G one mul inv N group_args normal_args Hpred q), @SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred q :=
fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun q => fun prod => prod (@SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred q) (fun (x : G) => fun (hx : @SubgroupProductPred.{succ u} G mul Hpred N x) => fun (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x) q) => hx (@SecondIsoImagePred.{u} G one mul inv N group_args normal_args Hpred q) (fun (h : G) => fun (n : G) => fun (hh : Hpred h) => fun (hn : N n) => fun (hx_eq : @Eq.{succ u} G (mul h n) x) => fun (P : Prop) => fun (mk : forall (h2 : G), forall (hh2 : Hpred h2), forall (eq_phi : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h2 hh2) q), P) => mk h hh (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) (@NormalQuotMk.{u} G one mul inv N group_args normal_args h) q (@second_iso_phi_mk.{u} G one mul inv N group_args normal_args Hpred h hh) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@NormalQuotMk.{u} G one mul inv N group_args normal_args h) (@NormalQuotMk.{u} G one mul inv N group_args normal_args x) q (@normal_quot_sound.{u} G one mul inv N group_args normal_args h x (@normal_rel_product_right.{succ u} G one mul inv group_args N h n x hn hx_eq)) eq_q))))