模块
Mathlib.Algebra.Group.Image
npa-mathlib
包
2
模块
63
定理
750
声明
1016
非可信 sidecar
源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。
定理
5
定义
1
归纳类型
0
公理
1
声明
ImagePred
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (y : H), Prop
image_intro
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (a : G), @ImagePred.{u,v} G H f (f a)
image_elim
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (y : H), forall (img : @ImagePred.{u,v} G H f y), forall (P : Prop), forall (mk...
image_one
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH...
image_mul_closed
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH...
image_inv_closed
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH...
Eq.rec
哈希
- source
- sha256:904df4b2602b8e0a7799aaeea9e6e310e61138f497c5fcc6a44d24443c9c3b9c
- certificateFile
- sha256:c4efe5d45e4dc167cd9137675e993d3ffe5678f4579484814736b72cfc77fa30
- export
- sha256:0935f963b77bb9ed124d4b38435ad2a9a19f860e1f06de11c1ab8ca3f05cdd0e
- axiomReport
- sha256:0869976f857fbf07454df1db004a649ae3ee9ede0e1429dbf40af6dfaac5bfeb
- certificate
- sha256:6b69557ec90109fac32db07e78f35a2150dbda092294245455d1b1b00bd2f588
源文本
import Std.Logic.Eq
import Mathlib.Logic.EqReasoning
import Mathlib.Algebra.Group.Basic
def ImagePred.{u,v} :
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (y : H), Prop :=
fun G => fun H => fun f => fun y => forall (P : Prop), forall (mk : forall (a : G), forall (h : @Eq.{v} H (f a) y), P), P
theorem image_intro.{u,v} :
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (a : G), @ImagePred.{u,v} G H f (f a) :=
fun G => fun H => fun f => fun a => fun (P : Prop) => fun (mk : forall (b : G), forall (h : @Eq.{v} H (f b) (f a)), P) => mk a (@Eq.refl.{v} H (f a))
theorem image_elim.{u,v} :
forall (G : Sort u), forall (H : Sort v), forall (f : forall (x : G), H), forall (y : H), forall (img : @ImagePred.{u,v} G H f y), forall (P : Prop), forall (mk : forall (a : G), forall (h : @Eq.{v} H (f a) y), P), P :=
fun G => fun H => fun f => fun y => fun img => fun P => fun mk => img P mk
theorem image_one.{u,v} :
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort 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.{u,v} G oneG mulG invG H oneH mulH invH f), @ImagePred.{u,v} G H f oneH :=
fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun hom_args => fun (P : Prop) => fun (mk : forall (a : G), forall (h : @Eq.{v} H (f a) oneH), P) => mk oneG (@hom_one.{u,v} G oneG mulG invG H oneH mulH invH f hom_args)
theorem image_mul_closed.{u,v} :
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort 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.{u,v} G oneG mulG invG H oneH mulH invH f), forall (x : H), forall (y : H), forall (hx : @ImagePred.{u,v} G H f x), forall (hy : @ImagePred.{u,v} G H f y), @ImagePred.{u,v} G H f (mulH x y) :=
fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun hom_args => fun x => fun y => fun hx => fun hy => hx (@ImagePred.{u,v} G H f (mulH x y)) (fun (a : G) => fun (hax : @Eq.{v} H (f a) x) => hy (@ImagePred.{u,v} G H f (mulH x y)) (fun (b : G) => fun (hby : @Eq.{v} H (f b) y) => fun (P : Prop) => fun (mk : forall (c : G), forall (h : @Eq.{v} H (f c) (mulH x y)), P) => mk (mulG a b) (@eq_trans.{v} H (f (mulG a b)) (mulH (f a) (f b)) (mulH x y) (@hom_mul.{u,v} G oneG mulG invG H oneH mulH invH f hom_args a b) (@eq_congr2.{v,v,v} H H H mulH (f a) x (f b) y hax hby))))
theorem image_inv_closed.{u,v} :
forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort 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.{u,v} G oneG mulG invG H oneH mulH invH f), forall (y : H), forall (hy : @ImagePred.{u,v} G H f y), @ImagePred.{u,v} G H f (invH y) :=
fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun hom_args => fun y => fun hy => hy (@ImagePred.{u,v} G H f (invH y)) (fun (a : G) => fun (hay : @Eq.{v} H (f a) y) => fun (P : Prop) => fun (mk : forall (c : G), forall (h : @Eq.{v} H (f c) (invH y)), P) => mk (invG a) (@eq_trans.{v} H (f (invG a)) (invH (f a)) (invH y) (@hom_inv.{u,v} G oneG mulG invG H oneH mulH invH f hom_args a) (@eq_congr_arg.{v,v} H H invH (f a) y hay)))