Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Why3
why3
Commits
da34dca3
Commit
da34dca3
authored
Mar 07, 2016
by
Martin Clochard
Browse files
examples(wip): 2wp_gen
parent
2411344a
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
examples/in_progress/2wp_gen/Makefile
View file @
da34dca3
SHELL
=
/bin/bash
REPLAY
=
why3 replay
-L
.
MLW
=
base choice ho_set ho_rel fn order transfinite game
MLW
=
base choice ho_set ho_rel fn order transfinite game
game_fmla
replay
:
@
exe
()
{
echo
"
$$
0
$$
@"
;
"
$$
@"
;
}
;
\
...
...
examples/in_progress/2wp_gen/base/why3session.xml
View file @
da34dca3
...
...
@@ -2,13 +2,13 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session
shape_version=
"4"
>
<prover
id=
"
0
"
name=
"Alt-Ergo"
version=
"1.0
0.prv
"
timelimit=
"5"
steplimit=
"1"
memlimit=
"1000"
/>
<prover
id=
"
1
"
name=
"Alt-Ergo"
version=
"1.0
1
"
timelimit=
"5"
steplimit=
"1"
memlimit=
"1000"
/>
<file
name=
"../base.mlw"
>
<theory
name=
"Fun"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
</theory>
<theory
name=
"FunExt"
sum=
"74d4af5538daa9eb9ddee6284a05e5bf"
>
<goal
name=
"WP_parameter extensional"
expl=
"VC for extensional"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
</theory>
<theory
name=
"FunCategory"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
...
...
@@ -19,34 +19,34 @@
<goal
name=
"ext.1"
expl=
"1."
>
<transf
name=
"inline_goal"
>
<goal
name=
"ext.1.1"
expl=
"1."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
</transf>
</goal>
<goal
name=
"ext.2"
expl=
"2."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
</goal>
</transf>
</goal>
<goal
name=
"assoc"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"4"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"4"
/></proof>
</goal>
<goal
name=
"neutral"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"9"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"9"
/></proof>
</goal>
<goal
name=
"FunExt.extensionality"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
<goal
name=
"FunCategory.assoc"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
<goal
name=
"FunCategory.neutral"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"10"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"10"
/></proof>
</goal>
</theory>
<theory
name=
"Set"
sum=
"8dc39e2ae96fd0498b0d50bb47f235eb"
>
<goal
name=
"sext_is_ext"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"4"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"4"
/></proof>
</goal>
</theory>
<theory
name=
"Rel"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
...
...
@@ -63,66 +63,66 @@
<goal
name=
"extensionality"
>
<transf
name=
"split_goal_wp"
>
<goal
name=
"extensionality.1"
expl=
"1."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"4"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"4"
/></proof>
</goal>
<goal
name=
"extensionality.2"
expl=
"2."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"4"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"4"
/></proof>
</goal>
<goal
name=
"extensionality.3"
expl=
"3."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
</goal>
</transf>
</goal>
<goal
name=
"assoc"
>
<transf
name=
"compute_specified"
>
<goal
name=
"assoc.1"
expl=
"1."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"12"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"12"
/></proof>
</goal>
</transf>
</goal>
<goal
name=
"reverse_antimorphism"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"27"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"27"
/></proof>
</goal>
<goal
name=
"reverse_antimorphism_id"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"9"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"9"
/></proof>
</goal>
<goal
name=
"reverse_involution"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"5"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"5"
/></proof>
</goal>
<goal
name=
"neutral"
>
<transf
name=
"compute_specified"
>
<goal
name=
"neutral.1"
expl=
"1."
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"14"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"14"
/></proof>
</goal>
</transf>
</goal>
<goal
name=
"RelExt.extensionality"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
</goal>
<goal
name=
"RelCategory.assoc"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
</goal>
<goal
name=
"RelCategory.reverse_antimorphism"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
</goal>
<goal
name=
"RelCategory.reverse_antimorphism_id"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
<goal
name=
"RelCategory.reverse_involution"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"2"
/></proof>
</goal>
<goal
name=
"RelCategory.neutral"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.01"
steps=
"11"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.01"
steps=
"11"
/></proof>
</goal>
</theory>
<theory
name=
"SubsetOrder"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
</theory>
<theory
name=
"SetProofs"
sum=
"0be5aa0fe01aa313571b5c5ef55cb77b"
>
<goal
name=
"anti_subset"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"7"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"7"
/></proof>
</goal>
<goal
name=
"SubsetOrder.subset_order"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.02"
steps=
"65"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.02"
steps=
"65"
/></proof>
</goal>
</theory>
<theory
name=
"Image"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
>
...
...
examples/in_progress/2wp_gen/choice/why3session.xml
View file @
da34dca3
...
...
@@ -2,14 +2,14 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session
shape_version=
"4"
>
<prover
id=
"
0
"
name=
"Alt-Ergo"
version=
"1.0
0.prv
"
timelimit=
"5"
steplimit=
"1"
memlimit=
"1000"
/>
<prover
id=
"
1
"
name=
"Alt-Ergo"
version=
"1.0
1
"
timelimit=
"5"
steplimit=
"1"
memlimit=
"1000"
/>
<file
name=
"../choice.mlw"
>
<theory
name=
"Choice"
sum=
"7c1ca533a0ae37f3bd6e59347ceef0bd"
>
<goal
name=
"WP_parameter choose"
expl=
"VC for choose"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"3"
/></proof>
</goal>
<goal
name=
"WP_parameter choose_if"
expl=
"VC for choose_if"
>
<proof
prover=
"
0
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
<proof
prover=
"
1
"
><result
status=
"valid"
time=
"0.00"
steps=
"2"
/></proof>
</goal>
</theory>
</file>
...
...
examples/in_progress/2wp_gen/fn/why3session.xml
View file @
da34dca3
...
...
@@ -7,5 +7,7 @@
</theory>
<theory
name=
"Category"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
expanded=
"true"
>
</theory>
<theory
name=
"Image"
sum=
"d41d8cd98f00b204e9800998ecf8427e"
expanded=
"true"
>
</theory>
</file>
</why3session>
examples/in_progress/2wp_gen/game.mlw
View file @
da34dca3
...
...
@@ -1993,123 +1993,3 @@ module StratProofs
end
(*
lemma absurdity : forall sc:section 'a 'b,dmn.
section_hypothesis sc ->
let evl = evolve sc dmn in
let bs = basic sc in
let st = fixpoint_above sc.sd evl bs in
let angb = sim_angel sc in
let winb = rel_map sc.r sc.win in
(forall x. st.h_total x -> not winb x) /\
not win_at sc.g2 winb angb dmn st.h_total ->
false
by let o1 = sc.g1.progress in let o2 = sc.g2.progress in
let op = oprod o1 o2 in
let pr = sup op st.h_pair in
let (a,b) = pr in
let nst = evl st in
tr_reach sc.sd evl bs st
so coherent sc dmn st
so maximum sc.sd (tr_reach sc.sd evl bs) st
so if not maximum op st.h_pair pr
then nst.h_pair pr so chain op st.h_pair
so (exists y. supremum op st.h_pair y)
so supremum op st.h_pair pr
so upper_bound op st.h_pair pr so false
else let s0 = sc.anga a st.h_proj in
if st.i_dmn s0 <> None \/ not sc.g1.transition a s0
then (* This is the point where we use the fact that
'a-angel must win. *)
let dmna = \x. match st.i_dmn x with
| None -> default
| Some a -> a
end
in
compat st.i_dmn dmna
so reconstructed sc st dmna
so (forall x. st.h_proj x -> not (sc.win x
so exists y. st.h_pair (x,y) so sc.r x y
so rel_map_witness sc.r sc.win y x so winb y
so st.h_total y))
so (maximum o1 st.h_proj a by forall u. st.h_proj u ->
o1 u a by exists v. st.h_pair (u,v) so op (u,v) (a,b))
so supremum o1 st.h_proj a
so a = sup o1 st.h_proj
so (sc.g1.transition a s0 -> dmna s0 = a /\ s0 (dmna s0)
by match st.i_dmn s0 with
| None -> false
| Some u -> s0 u /\ u = a
end)
so let nxt = strat_next sc.g1 sc.anga dmna in
nxt st.h_proj = a
so pext (extends_ch o1 nxt st.h_proj) st.h_proj
so maximum (subchain o1)
(tr_reach (subchain o1) (extends_ch o1 nxt) ((=) sc.basea))
st.h_proj
so (not win_against sc.g1 sc.basea sc.win sc.anga dmna
by forall ch. reach_ch o1 nxt ((=) sc.basea) ch ->
win_at sc.g1 sc.win sc.anga dmna ch -> false
by exists x. maximum o1 ch x /\
(sc.win x \/ let a = sc.anga x ch in sc.g1.transition x a /\
not a (dmna a))
so not (sc.win x so subchain o1 ch st.h_proj so st.h_proj x)
so supremum o1 ch x
so x = sup o1 ch
so nxt ch = x
so ext (extends_ch o1 nxt ch) ch
so maximum (subchain o1)
(tr_reach (subchain o1) (extends_ch o1 nxt) ((=) sc.basea))
ch
so ch = st.h_proj
so false)
so not winning_strat sc.g1 sc.basea sc.win sc.anga
so false
else false by let target = rel_map sc.r s0 in
let bl = sup o2 st.h_local in
if target bl
then let al = choice (rel_map_witness sc.r s0 bl) in
nst.i_dmn s0 = Some al so false
else let iang = iangel sc b target in
let nxt = strat_next sc.g2 iang dmn in
nst.h_local = extends_ch o2 nxt st.h_local
so if win_at sc.g2 winb angb dmn st.h_total then true else
not (nst.h_local = st.h_local
so locally_winning sc dmn st
so reach_ch o2 nxt ((=) b) st.h_local
so maximum (subchain o2)
(tr_reach (subchain o2) (extends_ch o2 nxt) ((=) b))
st.h_local
so (not win_against sc.g2 b target iang dmn
by forall ch. reach_ch o2 nxt ((=) b) ch ->
win_at sc.g2 target iang dmn ch -> false
by exists x. maximum o2 ch x /\
(target x \/ let a = iang x ch in sc.g2.transition x a /\
not a (dmn a))
so (supremum o2 st.h_local bl
by exists y. supremum o2 st.h_local y)
so not (target x so subchain o2 ch st.h_local so st.h_local x
so maximum o2 st.h_local x
so supremum o2 st.h_local x
so x = bl)
so supremum o2 ch x
so x = sup o2 ch
so nxt ch = x
so ext (extends_ch o2 nxt ch) ch
so maximum (subchain o2)
(tr_reach (subchain o2) (extends_ch o2 nxt) ((=) b))
ch
so ch = st.h_local
so x = bl
so maximum o2 st.h_total bl
so maximal_witness sc st.h_total st dmn
so any_max_witness sc st.h_total st
so st = choice (any_max_witness sc st.h_total)
so iang bl ch = angb bl st.h_total)
so not winning_strat sc.g2 b target iang
so sc.r a b
so exists ang. winning_strat sc.g2 b target ang)
so false
end*)
examples/in_progress/2wp_gen/game/why3session.xml
View file @
da34dca3
This diff is collapsed.
Click to expand it.
examples/in_progress/2wp_gen/game_fmla.mlw
View file @
da34dca3
This diff is collapsed.
Click to expand it.
examples/in_progress/2wp_gen/game_fmla/why3session.xml
View file @
da34dca3
This diff is collapsed.
Click to expand it.
examples/in_progress/2wp_gen/game_fmla/why3shapes.gz
View file @
da34dca3
No preview for this file type
examples/in_progress/2wp_gen/order/why3session.xml
View file @
da34dca3
This diff is collapsed.
Click to expand it.
examples/in_progress/2wp_gen/transfinite/why3session.xml
View file @
da34dca3
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment