Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Slow Typing

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Slow Typing


chronological Thread 
  • From: Hugo Herbelin <herbelin AT pauillac.inria.fr>
  • To: thery AT ns.di.univaq.it (Thery Laurent)
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Slow Typing
  • Date: Wed, 13 Jul 2005 13:00:19 +0200 (MET DST)
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

  Hi Laurent,

  You'll solve the complexity problem and will typecheck your example
in a few seconds if you replace in your file the expressions of the
form

      let r1 := make_PExpr_aux p1 e n in
        let r2 := make_PExpr_aux p2 e (snd r1) in
          (mkPEadd (fst r1) (fst r2), (snd r2))

by

      let (r11,r12) := make_PExpr_aux p1 e n in
        let (r21,r22) := make_PExpr_aux p2 e r12 in
          (mkPEadd r11 r21, r22)

that avoids exponential duplication of the expressions "make_PExpr_aux
x y z" when normalizing "test_in e e1".

  On the type-checking strategy question, Coq has to reduce in general
the argument of a match/if as it can potentially give informations on
the structural decreasing of the fixpoint definition. In the case of
"if", the branches does not extract information from the matched term,
so an optimization could have been done to avoid the reduction of
"test_in e e1".

  Hugo




Archive powered by MhonArc 2.6.16.

Top of Page