-debug("\nTAC ZERO INF POS\n");
+debug("TAC ZERO INF POS\n");
(Tacticals.thens ~start:(PrimitiveTactics.apply_tac ~term:_Rlt_mult_inv_pos)
~continuations:[
let exact = PrimitiveTactics.exact_tac;;
-let tac_use h ~status =
+let tac_use h ~status:(proof,goal as status) =
debug("Inizio TC_USE\n");
+let curi,metasenv,pbo,pty = proof in
+let metano,context,ty = List.find (function (m,_,_) -> m=goal) metasenv in
+debug ("hname = "^ CicPp.ppterm h.hname ^"\n");
+debug ("ty = "^ CicPp.ppterm ty^"\n");
+
let res =
match h.htype with
"Rlt" -> exact ~term:h.hname ~status
~continuation:(exact ~term:h.hname)) ~status
|_->assert false
in
-debug("Fine TAC_USE");
+debug("Fine TAC_USE\n");
res
;;
(* ora ho i termini che descrivono i passi di fourier per risolvere il sistema *)
debug "inizio a costruire tac1\n";
+ Fourier.print_rational(c1);
let tac1=ref ( fun ~status ->
- debug "Sotto tattica t1\n";
+ debug ("Sotto tattica t1 "^(if h1.hstrict then "strict" else "lasc")^"\n");
if h1.hstrict then
- (Tacticals.thens ~start:(PrimitiveTactics.apply_tac ~term:_Rfourier_lt)
- ~continuations:[tac_use h1;tac_zero_inf_pos (rational_to_fraction c1)] ~status)
+ (Tacticals.thens ~start:(
+ fun ~status ->
+ debug ("inizio t1 strict\n");
+ let curi,metasenv,pbo,pty = proof in
+ let metano,context,ty = List.find (function (m,_,_) -> m=goal) metasenv in
+ debug ("th = "^ CicPp.ppterm _Rfourier_lt ^"\n");
+ debug ("ty = "^ CicPp.ppterm ty^"\n");
+
+ PrimitiveTactics.apply_tac ~term:_Rfourier_lt ~status)
+ ~continuations:[tac_use h1;
+
+ Ring.id_tac] ~status
+
+ (*tac_zero_inf_pos (rational_to_fraction c1)] ~status*)
+
+ )
else
(Tacticals.thens ~start:(PrimitiveTactics.apply_tac ~term:_Rfourier_le)
~continuations:[tac_use h1;tac_zero_inf_pos (rational_to_fraction c1)] ~status))
(if h.hstrict then
(debug("tac1 1\n");
tac1:=(Tacticals.thens ~start:(PrimitiveTactics.apply_tac
- ~term:_Rfourier_lt_lt)
+ ~term:_Rfourier_lt_lt)
~continuations:[!tac1;tac_use h;
tac_zero_inf_pos
(rational_to_fraction c)]))
else
(
debug("tac1 2\n");
- tac1:=(Tacticals.thens ~start:(PrimitiveTactics.apply_tac
- ~term:_Rfourier_lt_le)
+ Fourier.print_rational(c1);
+ tac1:=(Tacticals.thens ~start:(
+ fun ~status ->
+ debug("INIZIO TAC 1 2\n");
+
+ let curi,metasenv,pbo,pty = proof in
+ let metano,context,ty = List.find (function (m,_,_) -> m=goal) metasenv in
+ debug ("th = "^ CicPp.ppterm _Rfourier_lt_le ^"\n");
+ debug ("ty = "^ CicPp.ppterm ty^"\n");
+
+ PrimitiveTactics.apply_tac ~term:_Rfourier_lt_le ~status
+
+ )
~continuations:[!tac1;tac_use h;
- tac_zero_inf_pos
- (rational_to_fraction c)]))
+
+ Ring.id_tac
+ (*tac_zero_inf_pos
+ (rational_to_fraction c)*)
+
+ ]))
)
else
(if h.hstrict then