返回 NPA

模块

Mathlib.Algebra.Group.ThirdIsomorphism

npa-mathlib

2

模块

63

定理

750

声明

1016

非可信 sidecar

源文本和展示 overlay 属于展示元数据。可信证据是签名证书和 checker 结果。

定理

16

定义

12

归纳类型

0

公理

1

声明

ThirdIsoGN

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...

definition

ThirdIsoGNOne

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...

definition

ThirdIsoGNMul

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...

definition

ThirdIsoGNInv

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...

definition

ThirdIsoHNPred

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...

definition

ThirdIsoHNSubgroupLawArgs

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...

definition

ThirdIsoHNNormalSubgroupLawArgs

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...

definition

ThirdIsoPhi

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...

definition

ThirdIsoPhiKernelQuot

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...

definition

ThirdIsoKernelPred

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...

definition

ThirdIsoKernelEvidence

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...

definition

ThirdIsoTheoremEvidence

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...

definition

third_iso_rel_lift

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...

theorem

third_iso_hn_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...

theorem

third_iso_hn_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...

theorem

third_iso_hn_one

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...

theorem

third_iso_hn_mul_closed

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...

theorem

third_iso_hn_inv_closed

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...

theorem

third_iso_hn_conj_closed

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...

theorem

third_iso_phi_mk

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...

theorem

third_iso_phi_mul

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...

theorem

third_iso_phi_one

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...

theorem

third_iso_phi_inv

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...

theorem

third_iso_phi_surjective

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...

theorem

third_iso_hn_to_kernel_sound

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...

theorem

third_iso_kernel_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...

theorem

third_iso_kernel_evidence

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...

theorem

third_isomorphism_theorem_evidence

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...

theorem

Eq.rec

axiom

哈希

source
sha256:bec4141231f249c9199f09e5829625f9fe3be627b3b4599487fbc85bee50305f
certificateFile
sha256:b1a9a1fc599c691fe7deaa84d7987f8cae03ec3c0ff7c0e263cdce5f0c49f919
export
sha256:9599c0eba4c71543e1a8e17c51d8eb06bf86f6ff2de94024d851eeed0129f429
axiomReport
sha256:0108ad64717a722b59da86273c6f6182ab9467621b71e499023718c8ea574f6a
certificate
sha256:0b0902c6c8e1538a362c0ee5904696be1a090177e22b1de8001db433a51ae1ff

源文本

import Std.Logic.Eq
import Mathlib.Logic.EqReasoning
import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Kernel.Quotient
import Mathlib.Algebra.Group.Subgroup
import Mathlib.Algebra.Group.Quotient
import Mathlib.Algebra.Group.Quotient.Mul
import Mathlib.Algebra.Group.Quotient.Group

def ThirdIsoGN.{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 (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), Sort succ u :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun n_normal => @NormalQuot.{u} G one mul inv N group_args n_normal

def ThirdIsoGNOne.{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 (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), @ThirdIsoGN.{u} G one mul inv N group_args n_normal :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun n_normal => @NormalQuotOne.{u} G one mul inv N group_args n_normal

def ThirdIsoGNMul.{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 (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q1 : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (q2 : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), @ThirdIsoGN.{u} G one mul inv N group_args n_normal :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun n_normal => @NormalQuotMul.{u} G one mul inv N group_args n_normal

def ThirdIsoGNInv.{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 (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), @ThirdIsoGN.{u} G one mul inv N group_args n_normal :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun n_normal => @NormalQuotInv.{u} G one mul inv N group_args n_normal

def ThirdIsoHNPred.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun q => forall (P : Prop), forall (mk : forall (h : G), forall (hh : Hpred h), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) q), P), P

def ThirdIsoHNSubgroupLawArgs.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => @SubgroupLawArgs.{succ u} (@ThirdIsoGN.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNOne.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal) (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal)

def ThirdIsoHNNormalSubgroupLawArgs.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => @NormalSubgroupLawArgs.{succ u} (@ThirdIsoGN.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNOne.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal) (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal)

def ThirdIsoPhi.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), @NormalQuot.{u} G one mul inv Hpred group_args h_normal :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => @Quotient.lift.{u,u} G (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@NormalSetoid.{u} G one mul inv N group_args n_normal) (fun (a : G) => @NormalQuotMk.{u} G one mul inv Hpred group_args h_normal a) (fun (a : G) => fun (b : G) => fun (h : @Setoid.r.{u} G (@NormalSetoid.{u} G one mul inv N group_args n_normal) a b) => @normal_quot_sound.{u} G one mul inv Hpred group_args h_normal a b (n_le_h (mul (inv a) b) h))

def ThirdIsoPhiKernelQuot.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), Sort succ u :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => @KerQuot.{u,u} (@ThirdIsoGN.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h)

def ThirdIsoKernelPred.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun q => @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q

def ThirdIsoKernelEvidence.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => forall (P : Prop), forall (mk : forall (kernel_sound : forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (hk : @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal q), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal)), forall (kernel_intro : forall (a : G), forall (ha : Hpred a), @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)), P), P

def ThirdIsoTheoremEvidence.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => forall (P : Prop), forall (mk : forall (rel_lift : forall (a : G), forall (b : G), forall (h : @NormalRel.{succ u} G one mul inv N a b), @NormalRel.{succ u} G one mul inv Hpred a b), forall (surjective : forall (q : @NormalQuot.{u} G one mul inv Hpred group_args h_normal), forall (Q : Prop), forall (mk_surj : forall (src : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h src) q), Q), Q), forall (kernel_evidence : @ThirdIsoKernelEvidence.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h), P), P

theorem third_iso_rel_lift.{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 (Hpred : forall (x : G), Prop), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (a : G), forall (b : G), forall (h : @NormalRel.{succ u} G one mul inv N a b), @NormalRel.{succ u} G one mul inv Hpred a b :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun n_le_h => fun a => fun b => fun h => n_le_h (mul (inv a) b) h

theorem third_iso_hn_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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : G), forall (hh : Hpred h), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) q), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun q => fun h => fun hh => fun eq_q => fun (P : Prop) => fun (mk : forall (h2 : G), forall (hh2 : Hpred h2), forall (eq_q2 : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h2) q), P) => mk h hh eq_q

theorem third_iso_hn_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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (hn : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q), forall (P : Prop), forall (mk : forall (h : G), forall (hh : Hpred h), forall (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) q), P), P :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun q => fun hn => fun P => fun mk => hn P mk

theorem third_iso_hn_one.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNOne.{u} G one mul inv N group_args n_normal) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => @third_iso_hn_intro.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNOne.{u} G one mul inv N group_args n_normal) one (@subgroup_one.{succ u} G one mul inv Hpred (@normal_subgroup_laws.{succ u} G one mul inv Hpred h_normal)) (@Eq.refl.{succ u} (@ThirdIsoGN.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNOne.{u} G one mul inv N group_args n_normal))

theorem third_iso_hn_mul_closed.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (q1 : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (q2 : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (hq1 : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q1), forall (hq2 : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q2), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal q1 q2) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun q1 => fun q2 => fun hq1 => fun hq2 => hq1 (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal q1 q2)) (fun (a : G) => fun (ha : Hpred a) => fun (eqa : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) q1) => hq2 (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal q1 q2)) (fun (b : G) => fun (hb : Hpred b) => fun (eqb : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal b) q2) => @third_iso_hn_intro.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal q1 q2) (mul a b) (@subgroup_mul_closed.{succ u} G one mul inv Hpred (@normal_subgroup_laws.{succ u} G one mul inv Hpred h_normal) a b ha hb) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul a b)) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) (@NormalQuotMk.{u} G one mul inv N group_args n_normal b)) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal q1 q2) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) (@NormalQuotMk.{u} G one mul inv N group_args n_normal b)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul a b)) (@normal_quot_mul_mk.{u} G one mul inv N group_args n_normal a b)) (@eq_congr2.{succ u,succ u,succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) q1 (@NormalQuotMk.{u} G one mul inv N group_args n_normal b) q2 eqa eqb))))

theorem third_iso_hn_inv_closed.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (q : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (hq : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal q), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal q) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun q => fun hq => hq (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal q)) (fun (a : G) => fun (ha : Hpred a) => fun (eqa : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) q) => @third_iso_hn_intro.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal q) (inv a) (@subgroup_inv_closed.{succ u} G one mul inv Hpred (@normal_subgroup_laws.{succ u} G one mul inv Hpred h_normal) a ha) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv a)) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal q) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv a)) (@normal_quot_inv_mk.{u} G one mul inv N group_args n_normal a)) (@eq_congr_arg.{succ u,succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) q eqa)))

theorem third_iso_hn_conj_closed.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (gq : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (nq : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (hnq : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal nq), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal gq nq) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal gq)) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => @Quotient.indProp.{u} G (@NormalSetoid.{u} G one mul inv N group_args n_normal) (fun (gq : @NormalQuot.{u} G one mul inv N group_args n_normal) => forall (nq : @ThirdIsoGN.{u} G one mul inv N group_args n_normal), forall (hnq : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal nq), @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal gq nq) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal gq))) (fun (g : G) => fun (nq : @ThirdIsoGN.{u} G one mul inv N group_args n_normal) => fun (hnq : @ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal nq) => hnq (@ThirdIsoHNPred.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) nq) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g)))) (fun (h : G) => fun (hh : Hpred h) => fun (eqh : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) nq) => @third_iso_hn_intro.{u} G one mul inv N Hpred group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) nq) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g))) (mul (mul g h) (inv g)) (@normal_conj_closed.{succ u} G one mul inv Hpred h_normal g h hh) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul (mul g h) (inv g))) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul g h)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv g))) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) nq) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g))) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul g h)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv g))) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul (mul g h) (inv g))) (@normal_quot_mul_mk.{u} G one mul inv N group_args n_normal (mul g h) (inv g))) (@eq_congr2.{succ u,succ u,succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul g h)) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) nq) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv g)) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g)) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul g h)) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h)) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) nq) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul g h)) (@normal_quot_mul_mk.{u} G one mul inv N group_args n_normal g h)) (@eq_congr2.{succ u,succ u,succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNMul.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) (@NormalQuotMk.{u} G one mul inv N group_args n_normal g) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) nq (@Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal g)) eqh)) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@ThirdIsoGNInv.{u} G one mul inv N group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal g)) (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv g)) (@normal_quot_inv_mk.{u} G one mul inv N group_args n_normal g))))))

theorem third_iso_phi_mk.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (a : G), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal a) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun a => @Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal a)

theorem third_iso_phi_mul.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (a : G), forall (b : G), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal (mul a b))) (@NormalQuotMul.{u} G one mul inv Hpred group_args h_normal (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal b))) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun a => fun b => @Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal (mul a b))

theorem third_iso_phi_one.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotOne.{u} G one mul inv N group_args n_normal)) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => @Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal)

theorem third_iso_phi_inv.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (a : G), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal (inv a))) (@NormalQuotInv.{u} G one mul inv Hpred group_args h_normal (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal a))) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun a => @Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal (inv a))

theorem third_iso_phi_surjective.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (q : @NormalQuot.{u} G one mul inv Hpred group_args h_normal), forall (P : Prop), forall (mk : forall (src : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h src) q), P), P :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => @Quotient.indProp.{u} G (@NormalSetoid.{u} G one mul inv Hpred group_args h_normal) (fun (q : @NormalQuot.{u} G one mul inv Hpred group_args h_normal) => forall (P : Prop), forall (mk : forall (src : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h src) q), P), P) (fun (a : G) => fun (P : Prop) => fun (mk : forall (src : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h src) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal a)), P) => mk (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) (@third_iso_phi_mk.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h a))

theorem third_iso_hn_to_kernel_sound.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (hk : @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal q), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun q => fun hk => hk (@Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal)) (fun (h : G) => fun (hh : Hpred h) => fun (eq_q : @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) q) => @eq_trans.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal h)) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal) (@eq_symm.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal h)) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@eq_congr_arg.{succ u,succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h) (@NormalQuotMk.{u} G one mul inv N group_args n_normal h) q eq_q)) (@eq_trans.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h (@NormalQuotMk.{u} G one mul inv N group_args n_normal h)) (@NormalQuotMk.{u} G one mul inv Hpred group_args h_normal h) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal) (@third_iso_phi_mk.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h h) (@normal_quot_sound.{u} G one mul inv Hpred group_args h_normal h one (@normal_rel_one_of_mem.{succ u} G one mul inv group_args Hpred h_normal h hh))))

theorem third_iso_kernel_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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (a : G), forall (ha : Hpred a), @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun a => fun ha => @third_iso_hn_intro.{u} G one mul inv N Hpred group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a) a ha (@Eq.refl.{succ u} (@NormalQuot.{u} G one mul inv N group_args n_normal) (@NormalQuotMk.{u} G one mul inv N group_args n_normal a))

theorem third_iso_kernel_evidence.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), @ThirdIsoKernelEvidence.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun (P : Prop) => fun (mk : forall (kernel_sound : forall (q : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (hk : @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal q), @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h q) (@NormalQuotOne.{u} G one mul inv Hpred group_args h_normal)), forall (kernel_intro : forall (a : G), forall (ha : Hpred a), @ThirdIsoKernelPred.{u} G one mul inv N Hpred group_args n_normal (@NormalQuotMk.{u} G one mul inv N group_args n_normal a)), P) => mk (@third_iso_hn_to_kernel_sound.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h) (@third_iso_kernel_intro.{u} G one mul inv N Hpred group_args n_normal)

theorem third_isomorphism_theorem_evidence.{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 (Hpred : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (n_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (h_normal : @NormalSubgroupLawArgs.{succ u} G one mul inv Hpred), forall (n_le_h : forall (x : G), forall (hn : N x), Hpred x), @ThirdIsoTheoremEvidence.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h :=
  fun G => fun one => fun mul => fun inv => fun N => fun Hpred => fun group_args => fun n_normal => fun h_normal => fun n_le_h => fun (P : Prop) => fun (mk : forall (rel_lift : forall (a : G), forall (b : G), forall (h : @NormalRel.{succ u} G one mul inv N a b), @NormalRel.{succ u} G one mul inv Hpred a b), forall (surjective : forall (q : @NormalQuot.{u} G one mul inv Hpred group_args h_normal), forall (Q : Prop), forall (mk_surj : forall (src : @NormalQuot.{u} G one mul inv N group_args n_normal), forall (h : @Eq.{succ u} (@NormalQuot.{u} G one mul inv Hpred group_args h_normal) (@ThirdIsoPhi.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h src) q), Q), Q), forall (kernel_evidence : @ThirdIsoKernelEvidence.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h), P) => mk (@third_iso_rel_lift.{u} G one mul inv N Hpred n_le_h) (@third_iso_phi_surjective.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h) (@third_iso_kernel_evidence.{u} G one mul inv N Hpred group_args n_normal h_normal n_le_h)