Moreover the userGoal was retrieved before setting it.
match grafite_status.proof_status with
| Incomplete_proof ({ stack = stack } as incomplete_proof) ->
sequents_viewer#load_sequents incomplete_proof;
- let goal =
- match script#goal with
- None -> assert false
- | Some n -> n
- in
(try
- script#setGoal (Continuationals.Stack.find_goal stack);
- sequents_viewer#goto_sequent goal
- with Failure _ -> script#setGoal ~-1);
+ script#setGoal (Some (Continuationals.Stack.find_goal stack));
+ let goal =
+ match script#goal with
+ None -> assert false
+ | Some n -> n
+ in
+ sequents_viewer#goto_sequent goal
+ with Failure _ -> script#setGoal None);
| Proof proof -> sequents_viewer#load_logo_with_qed
| No_proof -> sequents_viewer#load_logo
| Intermediate _ -> assert false (* only the engine may be in this state *)
goal2page <- [];
goal2win <- [];
_metasenv <- [];
- self#script#setGoal ~-1;
+ self#script#setGoal None
method load_sequents { proof = (_,metasenv,_,_) as proof; stack = stack } =
_metasenv <- metasenv;
let goal_switch =
try List.assoc page page2goal with Not_found -> assert false
in
- self#script#setGoal (goal_of_switch goal_switch);
+ self#script#setGoal (Some (goal_of_switch goal_switch));
self#render_page ~page ~goal_switch))
method private render_page ~page ~goal_switch =
GrafiteTypes.get_proof_conclusion self#grafite_status n
method stack = GrafiteTypes.get_stack self#grafite_status
- method setGoal n = userGoal <- Some n
+ method setGoal n = userGoal <- n
method goal = userGoal
method eos =
method proofConclusion: Cic.term (** @raise Statement_error *)
method stack: Continuationals.Stack.t (** @raise Statement_error *)
- method setGoal: int -> unit
+ method setGoal: int option -> unit
method goal: int option
(** end of script, true if the whole script has been executed *)