let by_term_we_proved ~dbd ~universe t ty id ty' =
let just =
match t with
- None -> Tactics.auto ~dbd ~params:[] ~universe
+ | None -> Tactics.auto ~dbd ~params:([],[]) ~universe
| Some t -> Tactics.apply t
in
match id with
let bydone ~dbd ~universe t =
let just =
match t with
- None -> Tactics.auto ~dbd ~params:[] ~universe
+ | None -> Tactics.auto ~dbd ~params:([],[]) ~universe
| Some t -> Tactics.apply t
in
just
incr i;
if !i = 1 then Cic.Name id1 else Cic.Name id2) ;
(match t with
- None -> Tactics.auto ~dbd ~params:[] ~universe
+ | None -> Tactics.auto ~dbd ~params:([],[]) ~universe
| Some t -> Tactics.apply t)
]) (proof', goal)
in
CicTypeChecker.type_of_aux' metasenv context rhs CicUniv.empty_ugraph in
let just' =
match just with
- `Auto params ->
+ `Auto (univ, params) ->
let params =
if not (List.exists (fun (k,_) -> k = "timeout") params) then
("timeout","3")::params
else params
in
if params = params' then
- Tactics.auto ~dbd ~params ~universe
+ Tactics.auto ~dbd ~params:(univ, params) ~universe
else
Tacticals.first
- [Tactics.auto ~dbd ~params ~universe ;
- Tactics.auto ~dbd ~params:params' ~universe]
- | `Term just ->
- let ty,_ =
- CicTypeChecker.type_of_aux' metasenv context just
- CicUniv.empty_ugraph
- in
- Tactics.solve_rewrite
- ~universe:(Universe.index Universe.empty
- (Universe.key ty) just) ~steps:1 ()
- (* Tactics.apply just *)
+ [Tactics.auto ~dbd ~params:(univ, params) ~universe ;
+ Tactics.auto ~dbd ~params:(univ, params') ~universe]
+ | `Term just -> Tactics.apply just
+ | `SolveWith term ->
+ Tactics.solve_rewrite ~universe ~params:([term],["steps","1"]) ()
| `Proof ->
Tacticals.id_tac
in
match just,goals with
`Proof, [g1;g2;g3] -> [g2;g3;newmeta;g1]
| _, [g1;g2] -> [g2;newmeta;g1]
- | _ -> assert false
+ | _, l ->
+ prerr_endline (String.concat "," (List.map string_of_int l));
+ prerr_endline (CicMetaSubst.ppmetasenv [] metasenv);
+ assert false
in
proof,goals)
in