diff options
author | Frédéric Besson <frederic.besson@inria.fr> | 2016-09-07 10:28:07 +0200 |
---|---|---|
committer | Frédéric Besson <frederic.besson@inria.fr> | 2016-09-07 10:28:07 +0200 |
commit | 6e847be2a6846ab11996d2774b6bc507a342a626 (patch) | |
tree | 18ddfc166371881314a763d63ce9e51216fa98fe /plugins/micromega/Lra.v | |
parent | 977e91d0aa5cfece962fc82e3fd42402918663c8 (diff) |
micromega : more robust generation of proof terms
- Assert a purely arihtmetic sub-goal that is proved independently by reflexion.
(This reduces the stress on the conversion test)
- Does not use 'abstract' anymore (more natural proof-term)
- Fix a parsing bug (certain terms in Prop where not recognized)
Diffstat (limited to 'plugins/micromega/Lra.v')
-rw-r--r-- | plugins/micromega/Lra.v | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/plugins/micromega/Lra.v b/plugins/micromega/Lra.v index 4d9cf22dd..5b97d8ed3 100644 --- a/plugins/micromega/Lra.v +++ b/plugins/micromega/Lra.v @@ -26,23 +26,20 @@ Ltac rchange := apply (RTautoChecker_sound __ff __wit). Ltac rchecker_no_abstract := rchange ; vm_compute ; reflexivity. -Ltac rchecker_abstract := abstract (rchange ; vm_cast_no_check (eq_refl true)). +Ltac rchecker_abstract := rchange ; vm_cast_no_check (eq_refl true). -Ltac rchecker := rchecker_abstract || rchecker_no_abstract. +Ltac rchecker := rchecker_no_abstract. (** Here, lra stands for linear real arithmetic *) -Ltac lra := unfold Rdiv in * ; lra_R ; rchecker. +Ltac lra := unfold Rdiv in * ; lra_R rchecker. (** Here, nra stands for non-linear real arithmetic *) -Ltac nra := unfold Rdiv in * ; xnra ; rchecker. +Ltac nra := unfold Rdiv in * ; xnra rchecker. Ltac xpsatz dom d := let tac := lazymatch dom with | R => - (sos_R || psatz_R d) ; - (* If csdp is not installed, the previous step might not produce any - progress: the rest of the tactical will then fail. Hence the 'try'. *) - try rchecker + (sos_R rchecker) || (psatz_R d rchecker) | _ => fail "Unsupported domain" end in tac. |