coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Laurent Thery <Laurent.Thery AT inria.fr>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] getting a definition as an equality theorem
- Date: Tue, 13 Nov 2018 08:38:02 +0100
- Autocrypt: addr=thery AT sophia.inria.fr; prefer-encrypt=mutual; keydata= xsBNBE3a3V8BCADTeORKU7I7UmBBcs4VhSCq1IgKD8vdmdrGAlF3IJSFng7Fk8+MgS2gWYcS Ukf5t+rjNM3Z6brfYXc1naZlf2JPGHvAGiz8+TkXL+/ZA6+gAoIKy/iKyD+hCD8m92WH3rPH vCX6EJ44FEI7gUJ37GlTjvuP0I55vaFcwEg8nDgkALaCJvrSHtePuPKR1Q+9q2dgR7fTObal HYGMAsgT6k6n2ofe4Q6VFRLJhruU02qAfV5zgIoa3xgrTwSr4RRDILHttAw7EN6aLG6JycJ7 sPsPsiQzrd/tFsNbiHYeojJCkU2pDSQ3pBtXAJL/z2pMWTeTXvA60l9w0sDO7M3mkC3vABEB AAHNJ0xhdXJlbnQgVGjDqXJ5IDxMYXVyZW50LlRoZXJ5QGlucmlhLmZyPsLAeAQTAQIAIgUC TdrdXwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQHHaWvRTi0tpIgggAnSUYcU2N uchXkGGwmPuLmvSUMiLkyFPs9GF2YF1ONOuJtpnQMcpsseCkcmIjESz0h5OpknpyraUXvbh0 ZdFqaLC2E+GyV8/YQi71wSsTPgWP450u0XUt0ysjwkKW6aIxIhSzrtgNp4E6w5KzXVJxA/yM V5RNFHg/5uifgfv4b7xaGHV8L93NbSvedk1O7yje5Hqgfab0t6J5Kf0M3sG+pB3gEkDVK9B7 +0fhe7/5u1Nj5HoLWid8UNZfFzJzb18Xe2ckzNye0KdDtQFac8qGUzhLbEYt3ScYjRYTq9/d V4Cin39j7Oo64Nk71iiLBISyuk0Q9D+Jq7nwwcQr/R8s1s7ATQRN2t1fAQgA7H6aX6BfdO/X Vlf4EGEoyFQ5u/JDe+giIHWSS34YWDWVUYyp320CrAYAkh9lQ1Nvh1tsmgiUh5xnY7wY0tOi wJSm94XlYAmHrddmWVNXRn09GvZJhfI2LdVBg3oxPfc8+bV+Hz83z/5BMPLOogxB22QMPJ6e iD2EsUMPNsuCVQ8WNo6ZmueuuYe7vEUXLYdRXNumJJgekEuG/q1BD4xgfzWpWfUODm6WygWZ oov50DomcDcAHW03bgnHlqnYu20Qg00GqgR3FKlORTvnOxD5TMCXe+eLUxkQfvnjbIPhtrnJ hgJMKVkRBEoaQ/XA4FdvxloInYPbqxNZ72yd09BbewARAQABwsBfBBgBAgAJBQJN2t1fAhsM AAoJEBx2lr0U4tLaWNQH/2/fIaF9ngbKPBJbDxYa7glJuCfamJgy3R8mJ//VYsS4RbdroSX3 29EgWlTx2reu1b4C5n5k7l4KpLgsRIc3bLUasGv15nf8BqmKIMulidzsxJv86S2imY/0870Q NOiO9SElHE7/2q4J1m2ew77SegiqGVWHl6Zs+4ROfOILTy24o26BQMAZhPX7jEs04Atv6yjw OUIPbzFO+XRuKqkBwHn9S8+GQelT0Gh84Dc5D2jIF0+kWY7uHqe2O+2LPfgO2CYhqmVfr/Ym mZv2xUyhJ7gui2hYaggncQ96cM2KhnKlgMw8nStY0GTqVXLEjPYblz8mqtF8aBPRSk/DjjrF QeI=
- Openpgp: preference=signencrypt
On 11/13/18 4:22 AM, Jeremy Dawson wrote:
> Having made a definition f x y z = a b c
> how do I get this as an equality theorem that can be used to rewrite
> a b c to f x y z?
>
> (I realise I can set it out as a lemma and prove it using unfold, but
> I'm assuming it's already there as a theorem that I just need to find
> out how to get hold of it)
Now there is no. You did the right thing proving the lemma by unfolding.
Note that often you do not need such theorem as the Coq engine directly
knows about this unfolding.
If I set this definition
Definition four := 2 + 2.
and the goal
Goal four = 2 + 2.
I can directly prove it by reflexivity.
Check refl_equal.
apply refl_equal.
Qed.
Note that this can get more powerful as even some
computation may be involved.
Goal four = 0 + 4.
Check refl_equal.
apply refl_equal.
Qed.
For more detail you can read:
https://coq.inria.fr/refman/language/cic.html?highlight=convertibility#conversion-rules
--
Laurent
- [Coq-Club] getting a definition as an equality theorem, Jeremy Dawson, 11/13/2018
- Re: [Coq-Club] getting a definition as an equality theorem, Laurent Thery, 11/13/2018
- Re: [Coq-Club] getting a definition as an equality theorem, Tej Chajed, 11/13/2018
- Re: [Coq-Club] getting a definition as an equality theorem, Dominique Larchey-Wendling, 11/13/2018
- RE: [Coq-Club] getting a definition as an equality theorem, Jason -Zhong Sheng- Hu, 11/13/2018
Archive powered by MHonArc 2.6.18.