try
let terms, terms' =
List.split
- (List.map
- (fun i, t -> t,
- (let x, _, _ = CicMetaSubst.delift_rels [] metasenv i t in
- let t' = reduction context x in
- CicSubstitution.lift i t'))
- terms)
+ (List.map
+ (fun i, t -> t, reduction (i @ context) t)
+ terms)
in
ProofEngineReduction.replace ~equality:(==) ~what:terms ~with_what:terms'
~where:where
in
let ty' =
match goal_pattern with
- | None -> replace context ty [0,ty]
+ | None -> replace context ty [[],ty]
| Some pat ->
- let terms = CicUtil.select ~term:ty ~context:pat in
+ let terms = ProofEngineHelpers.select ~term:ty ~pattern:pat in
replace context ty terms
in
let context' =
(match find_pattern_for name with
| None -> entry::context
| Some pat ->
- let terms = CicUtil.select ~term ~context:pat in
+ let terms = ProofEngineHelpers.select ~term ~pattern:pat in
let where = replace context term terms in
let entry = Some (name,Cic.Decl where) in
entry::context)
(match find_pattern_for name with
| None -> entry::context
| Some pat ->
- let terms = CicUtil.select ~term ~context:pat in
+ let terms = ProofEngineHelpers.select ~term ~pattern:pat in
let where = replace context term terms in
let entry = Some (name,Cic.Def (where,None)) in
entry::context)