Back to NPA

Module

Mathlib.Algebra.Group.SecondIsomorphism

npa-mathlib

Packages

2

Module

63

Theorems

750

Declarations

1016

Untrusted sidecar

Source text and display overlays are presentation metadata. The signed certificate and checker result are the trusted evidence.

Theorems

3

Definitions

3

Inductive types

0

Axioms

1

Declarations

Hashes

source
sha256:0e1ab3a17ab0c45a727fc47981340aa05615aa29beb3fa85428fbe7878336f2c
certificateFile
sha256:aa0ca6ce399b9c5534dd5bd434d885541b014bb62234116673aaf4986b5a3fc3
export
sha256:15bf8ddefccbafa5f0616331435775e8ce2a5f9db6023d5793038da2a810babb
axiomReport
sha256:bf5a5d3525044aca58e5ef80bc5fd13035d13b7a339decccf8fea603d7f379e3
certificate
sha256:63991024f404cf1ff14d22f340af79682b96c2721549b2983d296a8349df4424

Source

import Std.Logic.Eq
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
import Mathlib.Algebra.Group.SecondIsomorphism.Kernel
import Mathlib.Algebra.Group.SecondIsomorphism.Image

def SecondIsoKernelEvidence.{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), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => forall (P : Prop), forall (mk : forall (to_inter : forall (h : G), forall (hh : Hpred h), forall (hk : @SecondIsoKernelPred.{u} G one mul inv N h), @SubgroupInterPred.{succ u} G Hpred N h), forall (to_kernel : forall (h : G), forall (hi : @SubgroupInterPred.{succ u} G Hpred N h), @SecondIsoKernelPred.{u} G one mul inv N h), P), P

def SecondIsoImageEvidence.{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), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => forall (P : Prop), forall (mk : forall (image_to_product : 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), forall (product_to_image : 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), P), P

def SecondIsoTheoremEvidence.{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 (Hpred : forall (x : G), Prop), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (h_args : @SubgroupLawArgs.{succ u} G one mul inv Hpred), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), Prop :=
  fun G => fun one => fun mul => fun inv => fun Hpred => fun N => fun group_args => fun h_args => fun normal_args => forall (P : Prop), forall (mk : forall (kernel_evidence : @SecondIsoKernelEvidence.{u} G one mul inv N group_args normal_args Hpred), forall (image_evidence : @SecondIsoImageEvidence.{u} G one mul inv N group_args normal_args Hpred), P), P

theorem second_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 (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), @SecondIsoKernelEvidence.{u} G one mul inv N group_args normal_args Hpred :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun (P : Prop) => fun (mk : forall (to_inter : forall (h : G), forall (hh : Hpred h), forall (hk : @SecondIsoKernelPred.{u} G one mul inv N h), @SubgroupInterPred.{succ u} G Hpred N h), forall (to_kernel : forall (h : G), forall (hi : @SubgroupInterPred.{succ u} G Hpred N h), @SecondIsoKernelPred.{u} G one mul inv N h), P) => mk (@second_iso_kernel_to_inter.{u} G one mul inv N group_args normal_args Hpred) (@second_iso_inter_to_kernel.{u} G one mul inv N group_args normal_args Hpred)

theorem second_iso_image_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 (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), @SecondIsoImageEvidence.{u} G one mul inv N group_args normal_args Hpred :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun (P : Prop) => fun (mk : forall (image_to_product : 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), forall (product_to_image : 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), P) => mk (@second_iso_image_to_product_quot.{u} G one mul inv N group_args normal_args Hpred) (@second_iso_product_quot_to_image.{u} G one mul inv N group_args normal_args Hpred)

theorem second_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 (Hpred : forall (x : G), Prop), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (h_args : @SubgroupLawArgs.{succ u} G one mul inv Hpred), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), @SecondIsoTheoremEvidence.{u} G one mul inv Hpred N group_args h_args normal_args :=
  fun G => fun one => fun mul => fun inv => fun Hpred => fun N => fun group_args => fun h_args => fun normal_args => fun (P : Prop) => fun (mk : forall (kernel_evidence : @SecondIsoKernelEvidence.{u} G one mul inv N group_args normal_args Hpred), forall (image_evidence : @SecondIsoImageEvidence.{u} G one mul inv N group_args normal_args Hpred), P) => mk (@second_iso_kernel_evidence.{u} G one mul inv N group_args normal_args Hpred) (@second_iso_image_evidence.{u} G one mul inv N group_args normal_args Hpred)