Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Behaviour of Section and Variable in Modules

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Behaviour of Section and Variable in Modules


Chronological Thread 
  • From: mukesh tiwari <mukeshtiwari.iiitm AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] Behaviour of Section and Variable in Modules
  • Date: Thu, 5 Aug 2021 11:59:43 +1000
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mukeshtiwari.iiitm AT gmail.com; spf=Pass smtp.mailfrom=mukeshtiwari.iiitm AT gmail.com; spf=None smtp.helo=postmaster AT mail-ej1-f43.google.com
  • Ironport-hdrordr: A9a23:mn96EKy4S0cKEdqWzMGgKrPwIb1zdoMgy1knxilNoH1uA6ulfqWV9sjzuiWE6wr5NEtBpTniAsi9qBHnhPxICOAqVN/IYOCMghrMEGgN1/qH/9QiIUHDHyxmuJuIv5IQNDQ4NzZHsfo=
  • Ironport-phdr: A9a23:l4DOGRS9EDgn3SVyi3DS6TT0Atpsol+fAWYlg6HPa5pwe6iut67vIFbYra00ygOTBcOFu7kd1aL/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q99pHNfwlEnjuwbLB9IBmrrAjaq9Ubj5ZlJqst0BXCv2FGe/5RxWNmJFKTmwjz68Kt95N98Cpepuws+ddYXar1Y6o3Q7pYDC87M28u/83kqQPDTQqU6XQCVGgdjwdFDBLE7BH+WZfxrzf6u+9g0ySUIcH6UbY5Uimk4qx2ShHnlT0HOiY2/2/XhMJ+j79Vrgy9qBFk2YHYfJuYOeBicq/Bf94XQ3dKUMZLVyxGB4Oxd44PD/cCPelGtIn9p0YFrQe/BQiiHuzv0D5IjWLx0K0/zuQhEh/J3BcgH9ISsXTVos/6NL0TUeyvzanIzDTDb+9T2Trm54jIdwouofCIXb5qbcXRzkwvGhrDg16NpoPrIymb2f4Rs2iH8eVgT+SvhnY7pwx+rDWj2sYhhpfUi48a11zJ6CF0zokoKdC6RkB2bt6pHZpTui2HM4Z7QcMvTmJmtig0yLAIt5q2cTYExpkjwRPUdv+Jc5CQ7x79SOqcJS10iXFldb6lmRq+7EutxvfzW8S61ltBszBLncPWtn8X0hze8siHReV5/kemwTuP0hrc6uBAIUwti6XbKYMtzqc+lpccv0nPBCD2mELxjK+ZckUr5PKk5PjgYrXjvpOcNol0hR/iMqk2hMCzHeA1PhINUmWb4+iwyqDv8E7jTLhFgPA6iqzZv4rbJcQfqK65GQhV0oM75ha6Ejem08oXnWIHLFJZeRKGgZLmO0vPIPziDPe/glWskCtux/3dMb3hB4/CLnnHkLv7Ybl97EtcxBIpzd9D/5JUFq0BIPXrV0Dts9zYFwY1PBCww+b6E9pwzZgeWGKKAq+BKqzeq16I5uQ1I+mNfoAZojj9K+J2r8Lp2HQ+gBoWebSj9ZoRcnGxWPp8cGuDZn+5h8oCHHwK9hY/U+XwiRXWVCNQam2yQ6Mj7ys6ToOnDJvGbo+oib2Fmiy8G8sFNSh9FlmQHCKwJM2/UPAWZXfKSieOujMBXLmlDYQm0EP33Ocb479uL+6R9y9B8Jy/j5564OrckRx0/jtxXZz1O4SlQGR9n2dOTDgzjvgXnA==

Hi Everyone,

I have a module type Schnorr_Group and I want to prove some properties about it. I therefore defined another module Schnorr_Properties and passed the Schnorr_Group as a parameter. So far everything is good, but if you look at the proof p_pos, you can see that I need to bring all the axioms of Schnorr_Group by using  'pose proof ..' mechanism for lia to be successful, and I found it very cumbersome.

My question: is there a way to get a very similar behaviour of  'Section' and 'Variable' in Module?
(What I mean by 'Section' and 'Variable' behaviour is that everything defined using Variable in a Sections is always present in the context, as long as the Section is open.)

Best,
Mukesh

Module Type Schnorr_Group.
(* p = k * q + 1 where p and q are prime *)
(* g is group generator of order q, g^q = 1 mod p *)
(* 2 <= k *)
(* t is random number from Zp *)
(* x is private key from Zq *)
(* h is public key from Zp *)
Parameters
(p q k g t x h : Z).

Axiom prime_p : prime p.
Axiom prime_q : prime q.
Axiom k_gteq_2 : 2 <= k.
Axiom safe_prime : p = k * q + 1.
Axiom ht : 1 < t < p.
Axiom hg : g = Zpow_mod t k p.
Axiom hg_neq_one : g <> 1.
Axiom hprivate : 1 < x < q.
Axiom hpublic : h = Zpow_mod g x p.
End Schnorr_Group.


(* Proof that g is a generator of order q *)
Module Schnorr_Properties (Import SG : Schnorr_Group).

I want to do some magic here to get all the parameters and Axioms of SG in this context.

Lemma p_pos : 0 < p.
Proof.
  pose proof prime_p as Hp.
  pose proof prime_q as Hq.
  pose proof k_gteq_2 as Hk.
  pose proof safe_prime as Hs.
  pose proof ht as Ht.
  pose proof hg as Hg.
  pose proof hg_neq_one as Hgn.
  pose proof hprivate as Hx.
  pose proof hpublic as Hh.
  lia.
Qed.

(* more theorems *)
End Schnorr_Properties.


  • [Coq-Club] Behaviour of Section and Variable in Modules, mukesh tiwari, 08/05/2021

Archive powered by MHonArc 2.6.19+.

Top of Page