let exp_named_subst' =
reduceaux_exp_named_subst context l exp_named_subst
in
- (let o,_ = CicEnvironment.get_obj uri CicUniv.empty_ugraph in
+ (let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph uri in
match o with
C.Constant _ -> raise ReferenceToConstant
| C.CurrentProof _ -> raise ReferenceToCurrentProof
| C.InductiveDefinition _ -> raise ReferenceToInductiveDefinition
- | C.Variable (_,None,_,_) ->
+ | C.Variable (_,None,_,_,_) ->
let t' = C.Var (uri,exp_named_subst') in
if l = [] then t' else C.Appl (t'::l)
- | C.Variable (_,Some body,_,_) ->
+ | C.Variable (_,Some body,_,_,_) ->
(reduceaux context l
(CicSubstitution.subst_vars exp_named_subst' body))
)
let exp_named_subst' =
reduceaux_exp_named_subst context l exp_named_subst
in
- (let o,_ = CicEnvironment.get_obj uri CicUniv.empty_ugraph in
+ (let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph uri in
match o with
- C.Constant (_,Some body,_,_) ->
+ C.Constant (_,Some body,_,_,_) ->
(reduceaux context l
(CicSubstitution.subst_vars exp_named_subst' body))
- | C.Constant (_,None,_,_) ->
+ | C.Constant (_,None,_,_,_) ->
let t' = C.Const (uri,exp_named_subst') in
if l = [] then t' else C.Appl (t'::l)
| C.Variable _ -> raise ReferenceToVariable
- | C.CurrentProof (_,_,body,_,_) ->
+ | C.CurrentProof (_,_,body,_,_,_) ->
(reduceaux context l
(CicSubstitution.subst_vars exp_named_subst' body))
| C.InductiveDefinition _ -> raise ReferenceToInductiveDefinition
C.MutConstruct (_,_,j,_) -> reduceaux context l (List.nth pl (j-1))
| C.Appl (C.MutConstruct (_,_,j,_) :: tl) ->
let (arity, r) =
- let o,_ = CicEnvironment.get_obj mutind CicUniv.empty_ugraph in
+ let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph mutind in
match o with
- C.InductiveDefinition (tl,_,r) ->
+ C.InductiveDefinition (tl,_,r,_) ->
let (_,_,arity,_) = List.nth tl i in
(arity,r)
| _ -> raise WrongUriToInductiveDefinition
(* Takes a well-typed term and *)
(* 1) Performs beta-iota-zeta reduction until delta reduction is needed *)
(* 2) Attempts delta-reduction. If the residual is a Fix lambda-abstracted *)
-(* w.r.t. zero or more variables and if the Fix can be reduced, than it *)
+(* w.r.t. zero or more variables and if the Fix can be reductaed, than it *)
(* is reduced, the delta-reduction is succesfull and the whole algorithm *)
(* is applied again to the new redex; Step 3) is applied to the result *)
(* of the recursive simplification. Otherwise, if the Fix can not be *)
let exp_named_subst' =
reduceaux_exp_named_subst context l exp_named_subst
in
- (let o,_ = CicEnvironment.get_obj uri CicUniv.empty_ugraph in
+ (let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph uri in
match o with
C.Constant _ -> raise ReferenceToConstant
| C.CurrentProof _ -> raise ReferenceToCurrentProof
| C.InductiveDefinition _ -> raise ReferenceToInductiveDefinition
- | C.Variable (_,None,_,_) ->
+ | C.Variable (_,None,_,_,_) ->
let t' = C.Var (uri,exp_named_subst') in
if l = [] then t' else C.Appl (t'::l)
- | C.Variable (_,Some body,_,_) ->
+ | C.Variable (_,Some body,_,_,_) ->
reduceaux context l
(CicSubstitution.subst_vars exp_named_subst' body)
)
let exp_named_subst' =
reduceaux_exp_named_subst context l exp_named_subst
in
- (let o,_ = CicEnvironment.get_obj uri CicUniv.empty_ugraph in
+ (let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph uri in
match o with
- C.Constant (_,Some body,_,_) ->
+ C.Constant (_,Some body,_,_,_) ->
try_delta_expansion l
(C.Const (uri,exp_named_subst'))
(CicSubstitution.subst_vars exp_named_subst' body)
- | C.Constant (_,None,_,_) ->
+ | C.Constant (_,None,_,_,_) ->
let t' = C.Const (uri,exp_named_subst') in
if l = [] then t' else C.Appl (t'::l)
| C.Variable _ -> raise ReferenceToVariable
- | C.CurrentProof (_,_,body,_,_) -> reduceaux context l body
+ | C.CurrentProof (_,_,body,_,_,_) -> reduceaux context l body
| C.InductiveDefinition _ -> raise ReferenceToInductiveDefinition
)
| C.MutInd (uri,i,exp_named_subst) ->
C.MutConstruct (_,_,j,_) -> reduceaux context l (List.nth pl (j-1))
| C.Appl (C.MutConstruct (_,_,j,_) :: tl) ->
let (arity, r) =
- let o,_ = CicEnvironment.get_obj mutind CicUniv.empty_ugraph in
+ let o,_ = CicEnvironment.get_obj CicUniv.empty_ugraph mutind in
match o with
- C.InductiveDefinition (tl,ingredients,r) ->
+ C.InductiveDefinition (tl,ingredients,r,_) ->
let (_,_,arity,_) = List.nth tl i in
(arity,r)
| _ -> raise WrongUriToInductiveDefinition