模块
Mathlib.Algebra.Group.Kernel.Quotient
npa-mathlib
包
2
模块
63
定理
750
声明
1016
非可信 sidecar
源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。
定理
3
定义
4
归纳类型
0
公理
1
声明
KerSetoid
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), @Setoid.{u} G
KerQuot
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), Sort succ u
KerQuotMk
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), @KerQuot.{u,v} G H f
KerQuotToH
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (q : @KerQuot.{u,v} G H f), H
ker_quot_sound
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), forall (b : G), forall (h : @KerRel.{succ u,succ v} G H f a...
ker_quot_to_h_mk
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), @Eq.{succ v} H (@KerQuotToH.{u,v} G H f (@KerQuotMk.{u,v} G...
ker_quot_to_h_mul_mk
forall (G : Sort succ u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort succ v), for...
Eq.rec
哈希
- source
- sha256:d2f77c8524c46be7531a84cfa888c18517f3c9b031859f604d56efeca13926c3
- certificateFile
- sha256:25802dfd49cadecb2e84d10c0eb6077dc14cd8220eda4b924db8d51dccbba560
- export
- sha256:456e96fbacbb84ec968918cae2b0914f9b851c96f3bdf1fda65be372c247ea48
- axiomReport
- sha256:30155dfd0399b8bb9222cee6aff0c26065a6766282a10f97ef2d27d45d89aa6a
- certificate
- sha256:de182e1a592999e7b630930514be307ac7e38c012a6214196397bd96def89ed9
源文本
import Std.Logic.Eq
import Mathlib.Algebra.Group.Basic
def KerSetoid.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), @Setoid.{u} G :=
fun G => fun H => fun f => @Setoid.mk.{u} G (@KerRel.{succ u,succ v} G H f) (fun (P : Prop) => fun (mk_equiv : forall (refl_arg : forall (x : G), @KerRel.{succ u,succ v} G H f x x), forall (symm_arg : forall (x : G), forall (y : G), forall (p : @KerRel.{succ u,succ v} G H f x y), @KerRel.{succ u,succ v} G H f y x), forall (trans_arg : forall (x : G), forall (y : G), forall (z : G), forall (p : @KerRel.{succ u,succ v} G H f x y), forall (q : @KerRel.{succ u,succ v} G H f y z), @KerRel.{succ u,succ v} G H f x z), P) => mk_equiv (@ker_rel_refl.{succ u,succ v} G H f) (@ker_rel_symm.{succ u,succ v} G H f) (@ker_rel_trans.{succ u,succ v} G H f))
def KerQuot.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), Sort succ u :=
fun G => fun H => fun f => @Quotient.{u} G (@KerSetoid.{u,v} G H f)
def KerQuotMk.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), @KerQuot.{u,v} G H f :=
fun G => fun H => fun f => fun a => @Quotient.mk.{u} G (@KerSetoid.{u,v} G H f) a
def KerQuotToH.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (q : @KerQuot.{u,v} G H f), H :=
fun G => fun H => fun f => @Quotient.lift.{u,v} G H (@KerSetoid.{u,v} G H f) f (fun (a : G) => fun (b : G) => fun (h : @Setoid.r.{u} G (@KerSetoid.{u,v} G H f) a b) => h)
theorem ker_quot_sound.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), forall (b : G), forall (h : @KerRel.{succ u,succ v} G H f a b), @Eq.{succ u} (@KerQuot.{u,v} G H f) (@KerQuotMk.{u,v} G H f a) (@KerQuotMk.{u,v} G H f b) :=
fun G => fun H => fun f => fun a => fun b => fun h => @Quotient.sound.{u} G (@KerSetoid.{u,v} G H f) a b h
theorem ker_quot_to_h_mk.{u,v} :
forall (G : Sort succ u), forall (H : Sort succ v), forall (f : forall (x : G), H), forall (a : G), @Eq.{succ v} H (@KerQuotToH.{u,v} G H f (@KerQuotMk.{u,v} G H f a)) (f a) :=
fun G => fun H => fun f => fun a => @Eq.refl.{succ v} H (f a)
theorem ker_quot_to_h_mul_mk.{u,v} :
forall (G : Sort succ u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort succ v), forall (oneH : H), forall (mulH : forall (a : H), forall (b : H), H), forall (invH : forall (a : H), H), forall (f : forall (x : G), H), forall (hom_args : @GroupHomLawArgs.{succ u,succ v} G oneG mulG invG H oneH mulH invH f), forall (a : G), forall (b : G), @Eq.{succ v} H (@KerQuotToH.{u,v} G H f (@KerQuotMk.{u,v} G H f (mulG a b))) (mulH (@KerQuotToH.{u,v} G H f (@KerQuotMk.{u,v} G H f a)) (@KerQuotToH.{u,v} G H f (@KerQuotMk.{u,v} G H f b))) :=
fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun hom_args => fun a => fun b => @hom_mul.{succ u,succ v} G oneG mulG invG H oneH mulH invH f hom_args a b