Une MAJ de sécurité est nécessaire sur notre version actuelle. Elle sera effectuée lundi 02/08 entre 12h30 et 13h. L'interruption de service devrait durer quelques minutes (probablement moins de 5 minutes).

Commit 5a01c422 authored by MARCHE Claude's avatar MARCHE Claude
Browse files

Theory of sets: split/clone between finite and infinite sets

parent 27538456
......@@ -4,6 +4,10 @@
== Papers to write ==
* paper on the module system, its semantics, realizations, avec en
particulier la solution avec les types classes qui reste a
implanter
* DONE Encodings and transformations (Andrei+Francois)
* DONE Why presentation at the IVL workshop of CADE:
(http://research.microsoft.com/en-us/um/people/moskal/boogie2011/)
......@@ -101,14 +105,17 @@
* Coq tactic
** ajout de bases de hint
* Coq output
* PRIORITAIRE Coq output
- corriger l'incoherence, comprendre si on veut vraiment accepter
function x : 'a
(cf: en caml cela ne marche pas)
Solution proposee: utiliser des types classes, en particulier Inhabited
* new language constructs
** sandbox, abstract
** NOT NEEDED ANYMORE sandbox
** DONE abstract e { q }
** contract e { q }
* efficiency issues
- understand problems when large number of goals (cf D Mentré examples)
......@@ -202,7 +209,7 @@ See manual Section xx
== TODOs ==
* BUG CVC3 avec la division par 0, cf examples/tests-provers/cvc3.why
* DONE bug CVC3 avec la division par 0, cf examples/tests-provers/cvc3.why
* DONE Document the Coq plugin and tactic
** DONE option timelimit <n>
......
theory Th1
use import set.Fsetint
(* proved with vampire 0.6 and eprover 1.4 *)
lemma l_false : false
end
theory Th2
use import set.Fsetint
function integer : set int
lemma mem_integer: forall x:int. mem x integer
goal foo : false
end
theory Th3
use import int.Int
type set 'a
function f (set int) : int
function g (set int) : int
axiom axiom1: forall s: set int, x: int. f s <= x <= g s
goal foo : false
end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "/usr/local/share/why3/why3session.dtd">
<why3session
name="fsetint/why3session.xml">
<prover
id="0"
name="Alt-Ergo"
version="0.94"/>
<prover
id="1"
name="Alt-Ergo"
version="0.95-dev"/>
<prover
id="2"
name="CVC3"
version="2.2"/>
<prover
id="3"
name="CVC3"
version="2.4.1"/>
<prover
id="4"
name="Z3"
version="2.19"/>
<prover
id="5"
name="Z3"
version="3.2"/>
<file
name="../fsetint.why"
verified="false"
expanded="true">
<theory
name="Th1"
locfile="fsetint/../fsetint.why"
loclnum="2" loccnumb="7" loccnume="10"
verified="false"
expanded="true">
<goal
name="l_false"
locfile="fsetint/../fsetint.why"
loclnum="5" loccnumb="9" loccnume="16"
sum="dccc55c14590d1b87dbed47d9b0b7ca4"
proved="false"
expanded="true"
shape="f">
<proof
prover="4"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.42"/>
</proof>
<proof
prover="2"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.23"/>
</proof>
<proof
prover="0"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
<proof
prover="3"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.65"/>
</proof>
<proof
prover="5"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.53"/>
</proof>
<proof
prover="1"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.03"/>
</proof>
</goal>
</theory>
<theory
name="Th2"
locfile="fsetint/../fsetint.why"
loclnum="9" loccnumb="7" loccnume="10"
verified="false"
expanded="true">
<goal
name="mem_integer"
locfile="fsetint/../fsetint.why"
loclnum="13" loccnumb="8" loccnume="19"
sum="83012d44889c35b4b77dfddaf6119875"
proved="false"
expanded="true"
shape="amemV0aintegerF">
<proof
prover="4"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.22"/>
</proof>
<proof
prover="2"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.13"/>
</proof>
<proof
prover="0"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.01"/>
</proof>
<proof
prover="3"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.22"/>
</proof>
<proof
prover="5"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.22"/>
</proof>
<proof
prover="1"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
</goal>
<goal
name="foo"
locfile="fsetint/../fsetint.why"
loclnum="15" loccnumb="7" loccnume="10"
sum="1ac5f7ac42f0e2a8b0d1a1f11f9f0d71"
proved="false"
expanded="true"
shape="f">
<proof
prover="4"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.13"/>
</proof>
<proof
prover="2"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.04"/>
</proof>
<proof
prover="0"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.01"/>
</proof>
<proof
prover="3"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.32"/>
</proof>
<proof
prover="5"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="timeout" time="3.12"/>
</proof>
<proof
prover="1"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
</goal>
</theory>
<theory
name="Th3"
locfile="fsetint/../fsetint.why"
loclnum="20" loccnumb="7" loccnume="10"
verified="false"
expanded="true">
<goal
name="foo"
locfile="fsetint/../fsetint.why"
loclnum="30" loccnumb="7" loccnume="10"
sum="298aff6b85501a01c5fd7cab28f641d0"
proved="false"
expanded="true"
shape="f">
<proof
prover="4"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
<proof
prover="2"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.00"/>
</proof>
<proof
prover="0"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.01"/>
</proof>
<proof
prover="3"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.00"/>
</proof>
<proof
prover="5"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
<proof
prover="1"
timelimit="3"
memlimit="1000"
obsolete="false"
archived="false">
<result status="unknown" time="0.02"/>
</proof>
</goal>
</theory>
</file>
</why3session>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session SYSTEM "/home/marche/why3/share/why3session.dtd">
<!DOCTYPE why3session SYSTEM "/home/cmarche/recherche/why3/share/why3session.dtd">
<why3session
name="hoare_logic/wp_total/why3session.xml">
<prover
......@@ -13,7 +13,7 @@
<prover
id="2"
name="Coq"
version="8.3pl4"/>
version="8.3pl3"/>
<prover
id="3"
name="Z3"
......@@ -42,7 +42,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.00"/>
</proof>
</goal>
<goal
......@@ -76,7 +76,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.03"/>
</proof>
<proof
prover="1"
......@@ -84,7 +84,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
<proof
prover="0"
......@@ -92,7 +92,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.01"/>
<result status="valid" time="0.00"/>
</proof>
</goal>
<goal
......@@ -110,7 +110,7 @@
edited="wp_total_Imp_Test55_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.47"/>
<result status="valid" time="0.91"/>
</proof>
</goal>
<goal
......@@ -128,7 +128,7 @@
edited="wp_total_Imp_eval_subst_term_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.49"/>
<result status="valid" time="0.95"/>
</proof>
</goal>
<goal
......@@ -146,7 +146,7 @@
edited="wp_total_Imp_eval_subst_2.v"
obsolete="false"
archived="false">
<result status="unknown" time="0.50"/>
<result status="unknown" time="0.95"/>
</proof>
</goal>
<goal
......@@ -180,7 +180,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.10"/>
<result status="valid" time="0.15"/>
</proof>
</goal>
<goal
......@@ -198,7 +198,7 @@
edited="wp_total_Imp_If42_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.62"/>
<result status="valid" time="1.16"/>
</proof>
</goal>
<goal
......@@ -216,7 +216,7 @@
edited="wp_total_Imp_steps_non_neg_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.47"/>
<result status="valid" time="0.94"/>
</proof>
</goal>
<goal
......@@ -234,7 +234,7 @@
edited="wp_total_Imp_many_steps_seq_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.59"/>
<result status="valid" time="1.08"/>
</proof>
</goal>
<goal
......@@ -251,7 +251,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="1.66"/>
<result status="valid" time="2.69"/>
</proof>
</goal>
<goal
......@@ -269,7 +269,7 @@
edited="wp_total_Imp_assign_rule_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.56"/>
<result status="valid" time="1.01"/>
</proof>
</goal>
<goal
......@@ -286,7 +286,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.04"/>
<result status="valid" time="0.07"/>
</proof>
</goal>
<goal
......@@ -304,7 +304,7 @@
edited="wp_total_Imp_if_rule_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.59"/>
<result status="valid" time="1.08"/>
</proof>
</goal>
<goal
......@@ -322,7 +322,7 @@
edited="wp_total_Imp_assert_rule_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.55"/>
<result status="valid" time="0.96"/>
</proof>
</goal>
<goal
......@@ -340,7 +340,7 @@
edited="wp_total_Imp_assert_rule_ext_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.56"/>
<result status="valid" time="0.99"/>
</proof>
</goal>
<goal
......@@ -358,7 +358,7 @@
edited="wp_total_Imp_while_rule_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.64"/>
<result status="valid" time="1.22"/>
</proof>
</goal>
<goal
......@@ -376,7 +376,7 @@
edited="wp_total_Imp_while_rule_ext_1.v"
obsolete="false"
archived="false">
<result status="valid" time="0.63"/>
<result status="valid" time="1.19"/>
</proof>
</goal>
<goal
......@@ -393,7 +393,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.06"/>
<result status="valid" time="0.10"/>
</proof>
<proof
prover="1"
......@@ -401,7 +401,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.69"/>
<result status="valid" time="1.21"/>
</proof>
</goal>
</theory>
......@@ -416,7 +416,7 @@
locfile="hoare_logic/wp_total/../wp_total.mlw"
loclnum="343" loccnumb="10" loccnume="12"
expl="parameter wp"
sum="3b3c7568eba4a5058518ecd06aefe9c1"
sum="02248d557a950ca65e99091ae7529d99"
proved="false"
expanded="true"
shape="CV0aSskipavalid_tripleV1V0V1aSseqVVavalid_tripleV5V0V1Iavalid_tripleV5V2V4FIavalid_tripleV4V3V1FaSassignVVavalid_tripleasubstV1V6V7V0V1aSifVVVavalid_tripleaFandaFimpliesaFtermV8V11aFimpliesaFnotaFtermV8V12V0V1Iavalid_tripleV12V10V1FIavalid_tripleV11V9V1FaSassertVavalid_tripleaFimpliesV13V1V0V1aSwhileVVVavalid_tripleaFandV15aFandaFimpliesaFandaFtermV14V15V17aFimpliesaFandaFnotaFtermV14V15V1V0V1Iavalid_tripleV17V16V15FFF">
......@@ -429,7 +429,7 @@
edited="wp_total_WP_WP_WP_parameter_wp_2.v"
obsolete="false"
archived="false">
<result status="unknown" time="0.52"/>
<result status="unknown" time="0.93"/>
</proof>
<transf
name="split_goal"
......@@ -440,7 +440,7 @@
locfile="hoare_logic/wp_total/../wp_total.mlw"
loclnum="343" loccnumb="10" loccnume="12"
expl="parameter wp"
sum="372dade0880c4b11b62c9519b576104f"
sum="586a1ed087e20901e34c5667f94b6f7d"
proved="true"
expanded="false"
shape="CV0aSskipavalid_tripleV1V0V1aSseqVVtaSassignVVtaSifVVVtaSassertVtaSwhileVVVtFF">
......@@ -452,7 +452,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.04"/>
</proof>
</goal>
<goal
......@@ -460,7 +460,7 @@
locfile="hoare_logic/wp_total/../wp_total.mlw"
loclnum="343" loccnumb="10" loccnume="12"
expl="parameter wp"
sum="2a9671748327e6b174d89c854f459cd7"
sum="b96886f2c0a725327ba304f0829a77cc"
proved="true"
expanded="false"
shape="CV0aSskiptaSseqVVavalid_tripleV5V0V1Iavalid_tripleV5V2V4FIavalid_tripleV4V3V1FaSassignVVtaSifVVVtaSassertVtaSwhileVVVtFF">
......@@ -472,7 +472,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal
......@@ -480,7 +480,7 @@
locfile="hoare_logic/wp_total/../wp_total.mlw"
loclnum="343" loccnumb="10" loccnume="12"
expl="parameter wp"
sum="48c61d8298e673a55d344c5e8e442f8e"
sum="3e3317d4a7ae4c100945dd4e6d8be09a"
proved="true"
expanded="false"
shape="CV0aSskiptaSseqVVtaSassignVVavalid_tripleasubstV1V4V5V0V1aSifVVVtaSassertVtaSwhileVVVtFF">
......@@ -492,7 +492,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.02"/>
<result status="valid" time="0.03"/>
</proof>
</goal>
<goal
......@@ -500,7 +500,7 @@
locfile="hoare_logic/wp_total/../wp_total.mlw"
loclnum="343" loccnumb="10" loccnume="12"
expl="parameter wp"
sum="5c31555bb7a5f133b01c85adc425ad53"
sum="ca8ea26d6a05744f6a7c0378628e60f0"
proved="true"
expanded="false"
shape="CV0aSskiptaSseqVVtaSassignVVtaSifVVVavalid_tripleaFandaFimpliesaFtermV6V9aFimpliesaFnotaFtermV6V10V0V1Iavalid_tripleV10V8V1FIavalid_tripleV9V7V1FaSassertVtaSwhileVVVtFF">
......@@ -512,7 +512,7 @@
memlimit="0"
obsolete="false"
archived="false">
<result status="valid" time="0.55"/>
<result status="valid" time="0.92"/>
</proof>
<proof
prover="1"
......@@ -528,7 +528,7 @@
memlimit="0"