deepspec / dsss18 Goto Github PK
View Code? Open in Web Editor NEWLecture material for DeepSpec Summer School 2018
License: Other
Lecture material for DeepSpec Summer School 2018
License: Other
I think it should be mentioned somewhere that following QuickChick volume require installing quickchick library. Sorry if I missed them. Installation instructions at https://github.com/QuickChick/QuickChick worked for me.
actully instead of actually
Line 788 in 851fa57
Line 215 in e5da53c
Consider following lemma:
Definition elements_property (t: tree) (cts: total_map V) : Prop :=
forall k v,
(In (k,v) (elements t) -> cts (int2Z k) = v) /\
(cts (int2Z k) <> default -> In (k, cts (int2Z k)) (elements t)).
Theorem elements_relate:
forall t cts,
SearchTree t ->
Abs t cts ->
elements_property t cts.
This lemma does not seem provable. Specifically, the second conjunction:
(cts (int2Z k) <> default -> In (k, cts (int2Z k)) (elements t)
is not provable in the case where k
is found in the tree. In that time, the premises will look like
t = T _ l (int2Z k0) (cts (int2Z k0)) r
int2Z k0 = int2Z k
while the goal is
In (k, cts (int2Z k)) [(k0, cts(int2Z k0)]
since int
is a postulated type, we cannot prove k = k0
.
For this reason, I propose to use
cts (int2Z k) <> default -> exists k', int2Z k = int2Z k' /\ In (k', cts (int2Z k)) (elements t)
to be the goal instead. This new goal is weakened, such that any k'
in the same fibre as k
w.r.t int2Z
will work, and I've proved this lemma with this modified goal instead.
Another way to fix it is to postulate int2Z
is injective. However, this is quite a strong axiom to introduce (though no inconsistency introduced).
Please confirm if the original goal can be proved and if not, my proposed goal is a good idea or not. I can raise a PR if it's OK.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.