]> matita.cs.unibo.it Git - helm.git/commitdiff
Bug fixed: cooking w.r.t. a variable with a body must not increment
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 6 Dec 2001 18:24:58 +0000 (18:24 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Thu, 6 Dec 2001 18:24:58 +0000 (18:24 +0000)
the number of left parameters.

helm/ocaml/cic_proof_checking/cicCooking.ml

index 109c1582fa45afe2640a48b1dddd73ae27c0ead8..c382bb361f7e554ad56b6ce243a11f27a365bb6e 100644 (file)
@@ -197,7 +197,18 @@ let cook_one_level obj curi cookingsno vars =
            (name,inductive,cook_prod curi cookingsno arity vars,constructors')
         ) dl
       in
-       C.InductiveDefinition (dl', params, n_ind_params + List.length vars)
+       let number_of_variables_without_a_body =
+        let is_not_letin uri =
+         match CicEnvironment.get_obj uri with
+            C.Variable (_,None,_) -> true
+          | C.Variable (_,Some _,_) -> false
+          | _ -> raise (WrongUriToVariable (UriManager.string_of_uri uri))
+        in
+         List.fold_left
+          (fun i uri -> if is_not_letin uri then i + 1 else i) 0 vars
+       in
+        C.InductiveDefinition
+         (dl', params, n_ind_params + number_of_variables_without_a_body)
 ;; 
 
 let cook_obj obj uri =