coq-club AT inria.fr
Subject: The Coq mailing list
List archive
Re: [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment)
Chronological Thread
- From: Ilmārs Cīrulis <ilmars.cirulis AT gmail.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment)
- Date: Mon, 26 Jun 2017 04:01:09 +0300
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=ilmars.cirulis AT gmail.com; spf=Pass smtp.mailfrom=ilmars.cirulis AT gmail.com; spf=None smtp.helo=postmaster AT mail-vk0-f43.google.com
- Ironport-phdr: 9a23:BfdalRzN9pGGsTDXCy+O+j09IxM/srCxBDY+r6Qd1OkfIJqq85mqBkHD//Il1AaPBtSEraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze6/9pnRbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRDqhicJNzA3/mLKhMJukK1WuwiuqwBlzoPOfI2ZKPhzc6XAdt0aX2pBWcNRWjRCDIO4aosKCfABPf1FpITjplsOtwa+BQ2tBOP01zRFgX723ak/0+s7CwHGxxYsEM4PsHTOsdX1MKYSUfuuwanHyDXMdfJW2TPn5IfUdRAhpOiBULRtesTS0UkiDx3JgkmUpID/PD6Y1v4Bv3aG4+duT+6ihGAqpgdsqTa13MgskJPGhocNx1DE6yp5xIE1KMW9SEFhYN6kFIJctz+ZN4dqW88iTW5ltSggxr0Jvp67eycKyJA5yBLFd/OHdI2I7griVOaXPzh4mGpodKyjixu260Stye3xWtOq3FpXoCdJiNbBu34V2xzW8MeHS/99/km72TaI0gDe8uBEIUQxlaXBMZ4h2aQ8mYYSsUTZAy/2nET2jLSNe0Ur/+in8eXnYrH8qpCAMI90jxnyMr4ylcynHeQ4Lg8OUnCH9uS7zb3v5FH2QLFXjvItiaTZq5DbJcEDpqGjGQNV04Aj6wy+Dzi8ytgYk2MHfxp5f0fNhI/wflrKPfrQDPGlgl3qni0hj6TNOaSkCZHQJFDClq3gdPBz8RgP5hA0yIV+45f/EKpJC/PpR0vwr5SMDxs8Ohavhe3mEsh515g2VmeGA6vfO6TX5wzbrtkzKvWBMddG8A32LOIosqbj
The end result (without definition of group). (Dunno, maybe someone finds it useful).
Require Import Utf8 Relations Equivalence Morphisms Setoid.
Set Implicit Arguments.
Class Equiv: Type := {
EquivT : Type;
EquivR : relation EquivT;
EquivE :> Equivalence EquivR
}.
Arguments EquivT _: clear implicits.
Coercion EquivT: Equiv >-> Sortclass.
Notation "x ≡ y" := (EquivR x y) (at level 70).
Class Fun (A B: Equiv): Type := {
FunF : @EquivT A → @EquivT B;
FunP :> Proper (@EquivR A ==> @EquivR B) FunF
}.
Arguments Build_Fun {A} {B} _ _.
Coercion FunF: Fun >-> Funclass.
Definition FunEquiv (A B: Equiv) := @Build_Equiv (Fun A B) eq _.
Notation "x ≡> y" := (FunEquiv x y) (at level 100, right associativity).
Structure Group := {
GroupT: Equiv;
GroupOp: GroupT ≡> GroupT ≡> GroupT;
GroupAssoc: ∀ a b c, GroupOp (GroupOp a b) c ≡ GroupOp a (GroupOp b c);
GroupId: GroupT;
GroupIdR: ∀ a, GroupOp GroupId a ≡ a;
GroupIdL: ∀ a, GroupOp a GroupId ≡ a;
GroupInv: Fun GroupT GroupT;
GroupInvR: ∀ a, GroupOp a (GroupInv a) ≡ GroupId;
GroupInvL: ∀ a, GroupOp (GroupInv a) a ≡ GroupId;
}.
Notation "a ∘ b" := (GroupOp _ a b) (at level 60, right associativity).
Notation "a '⁻¹'" := (GroupInv _ a) (at level 55).
Notation "'e'" := (GroupId _).
Theorem T0 (G: Group) (a b: GroupT G):
a ∘ b ≡ e → b ≡ a⁻¹.
Proof.
intros. rewrite <- (GroupIdL _ (a⁻¹)).
rewrite <- H. rewrite <- GroupAssoc.
rewrite <- (GroupIdR _ b) at 1.
rewrite (GroupInvL _ a). reflexivity.
Qed.
If one wants to make Equivalence primary in such or similar way - for example, by making a Coq extension...
I believe it's possible, but are there some reasons against it?
- [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment), Ilmārs Cīrulis, 06/07/2017
- Re: [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment), Ilmārs Cīrulis, 06/08/2017
- Re: [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment), Ilmārs Cīrulis, 06/26/2017
- Re: [Coq-Club] Tried to simulate Bishop sets (an question about problem in the experiment), Ilmārs Cīrulis, 06/08/2017
Archive powered by MHonArc 2.6.18.