Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Avoiding the use of JMeq_eq

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Avoiding the use of JMeq_eq


Chronological Thread 
  • From: e AT x80.org (Emilio Jesús Gallego Arias)
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Avoiding the use of JMeq_eq
  • Date: Fri, 26 May 2017 19:54:59 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=e AT x80.org; spf=Neutral smtp.mailfrom=e AT x80.org; spf=None smtp.helo=postmaster AT cc-tupan-roaming-a.ensmp.fr
  • Ironport-phdr: 9a23:e3yIohVOGJndjUiw2Yc4wCTM8/XV8LGtZVwlr6E/grcLSJyIuqrYYxOPt8tkgFKBZ4jH8fUM07OQ6PG+HzFfqdbZ6TZZIcMKD0dEwewt3CUeQ+e9SnfHZMbwaCI7GMkQHHRExFqcdXZvJcDlelfJqWez5zNBUj/2NA5yO/inUtWK15f/2O+94YDcbBtVjzShf7xyMA+2rQLMvcUKnIduMKg8xx/Ir3dSe+lbx35jKVaPkxrh/Mu98ppu/iZKt/4968JMVLjxcrglQ7BfEDkpPGc56dHxuxXEUQWB+GYXXH8MkhpPDQjF7RX6UYn0vyDnqOdz2zSUMNPvQ7wsVjus86lkSBnziCcaLDE5633YitZxjK1Avh2soQF0zpPOb4GUMPp+eb7dfc8fSGFcUMtdSzBND4WhZIYJEuEPP/tXr5PlqlUOsxWwGAujBOThyjBGiHH43qI13Pg6HAHawAAtBc4CvGjOodj3MqoZTOC7zLPPzTXGd/5Zxyzw6YfLfxw9u/2MWqhwccXMwkUrGA3Fi1SQqYjkPzOSy+8Dt3aU7/F6TeK0lmUpqht+ojyrxsgyhYnJgZ8ex0ze9SV42ok1Pti0RUhmatCnCJtdrzyWOo95T884XW1kpSk3xqcbtZO7fyUG0okryhDcZvCfcIWF4wjvWeeTLDtigH9pYqyzihis/UWm1+byTNO70ExQoSpAitTMtm4C1xjU6sWfVvRy4l6t2SqS1wDL8O5EJ1k4lbDcK5E7x74wl5wTsUvaEiDsgkn5kqmWdl4h+uiw8ejnbK/mqoedN49ylA7+LrwjltG7DOk3KAQCQXWX9Oum2LH+/UD0Q69GguA4n6TaqJzaIN4Upq+9Aw9byIYj7BO/Ai+439kDkngKL05JdAiAj4jzNFHCOOr4Auung1SwjDdrwOjLMaHmApXUN3TMjLPhfatm5ENH0woyzdVf54pOBb0bIfLzXFXxtN3CARMjPQy02bWvNNIo3YQHHGmLH6WxMaXIsFbO6Ph8DfOLYdoYkCatc74i/fGmzVI8mFsceuGL0ICFcziXF/BiLkqeKVP2g94aUDRZ9jEiRfDn3QXRGQVYYGy/Cvox
  • Organization: X80 Heavy Industries

Hi John,

"John Wiegley"
<johnw AT newartisans.com>
writes:

> Is this the best way of solving the problem? For larger categories there is
> a
> lot of boilerplate in providing all these reduction rules, but it's worth it
> to avoid axioms. Though I thought perhaps, someone knows of a better way?

You could try using `eq_dep`, with can be usually made axiom-free as
long as you can prove you indexes are decidable. In this case you need
to elaborate a bit more:

8<----------------------------------------------------------------------8<
Arguments eq_dep [U] P p x q y.

Lemma RoofObj_dec (o1 o2 : RoofObj * RoofObj) : { o1 = o2 } + { o1 <> o2 }.
Proof. repeat decide equality. Qed.

Definition R_abs x := RoofHom x.1 x.2.

Lemma RNeg_RNeg_id_gen o1 o2 (h1 : o1 = RNeg) (h2 : o2 = RNeg) (f : RoofHom
o1 o2) :
eq_dep R_abs (o1, o2) f (RNeg, RNeg) IdNeg.
Proof. by case: f h1 h2. Qed.

Lemma RNeg_RNeg_id (f : RoofHom RNeg RNeg) : f = IdNeg.
Proof.
exact/(@eq_dep_eq_dec _ RoofObj_dec R_abs (RNeg, RNeg))/RNeg_RNeg_id_gen.
Qed.
8<----------------------------------------------------------------------8<

[I'm sure you can easily make the code better]

IMO this is not a big improvement over your approach, however it is a
bit more systematic and easier to write than the elaborate matches.

Best,
E.



Archive powered by MHonArc 2.6.18.

Top of Page