- 24 Nov, 2015 1 commit
-
-
Andrei Paskevich authored
but forbid writing into these "confined" regions
-
- 15 Nov, 2015 1 commit
-
-
Andrei Paskevich authored
this should not be problematic as long as these fields do not occur in the invariants (actual or refined). In other words, a value of a private type exists no matter what is stored in the field. Also, admit non-private mutable types without actual mutable fields. It is actually impossible to create a write effect for such types, and the only consequence of being mutable is that they are assigned a region, and so every value of such type can be tracked individually. One use case for this is a non-private record with an invariant, which either has fields with mutable types or has type parameters that we wish to instantiate with mutable types. If we modify these mutable components, this may break the record's invariant. Now, if the record itself is immutable (and thus has no associated region), then we must reestablish the invariant immediately, otherwise we lose track of the value. Even if this extra flexibility does not prove useful in the end, it seems to be harmless. Also, admit type definitions of the form type t 'a = (private|abstract)? mutable? {} invariant* which define private empty records (even if not declared private). Also, "type t 'a" is now equivalent to "type t 'a = private {}".
-
- 13 Nov, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 08 Nov, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 18 Sep, 2015 1 commit
-
-
Andrei Paskevich authored
pure functions are always ghost, accept mutable values, and are required to produce pure results
-
- 13 Sep, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 22 Aug, 2015 6 commits
-
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
- 21 Aug, 2015 1 commit
-
-
Jean-Christophe Filliâtre authored
-
- 20 Aug, 2015 2 commits
-
-
Andrei Paskevich authored
0. define Map.map 'a 'b as an alias 'a -> 'b 1. define Set.set as an alias for 'a -> bool 2. rename HighOrd.func to (->) 3. remove HighOrd.pred 4. update drivers
-
Andrei Paskevich authored
-
- 19 Aug, 2015 2 commits
-
-
Andrei Paskevich authored
-
Andrei Paskevich authored
the previous commit loses information when the target type symbol is an existing type alias. This commit preserves symbol-to-symbol instances.
-
- 18 Aug, 2015 3 commits
-
-
Andrei Paskevich authored
this removes the ugly hack of creating an ad-hoc type alias symbol for substitutions like "clone T with type t 'a = list (int, 'a)". If a type symbol "t1 'a 'b 'c" is instantiated into a type of the form "t2 'a 'b 'c", then the metas that mention the type symbol "t1" are preserved, and "t1" is replaced with "t2". Otherwise, all such metas disappear in the cloned theory.
-
Andrei Paskevich authored
This is a one-call function that exports add_clone_unsafe to Pmodule, allowing it to add Clone declarations to underlying theories without additional checks.
-
Andrei Paskevich authored
-
- 07 Aug, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 06 Aug, 2015 3 commits
-
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
- 31 Jul, 2015 1 commit
-
-
Andrei Paskevich authored
Both ity_app and ity_pur produce Ityapp(s,tl,[]) when s is a pure type such as int or list.
-
- 28 Jul, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 17 Jul, 2015 1 commit
-
-
Andrei Paskevich authored
We need to be able to put quantifiers directly over the arguments and the external reads, without having to reconstruct their values with aliases.
-
- 05 Jul, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 29 Jun, 2015 1 commit
-
-
Andrei Paskevich authored
we are not going to use exceptions as first-class values any time soon
-
- 25 Jun, 2015 1 commit
-
-
Andrei Paskevich authored
-
- 24 Jun, 2015 2 commits
-
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
- 19 Jun, 2015 2 commits
-
-
Andrei Paskevich authored
-
Andrei Paskevich authored
-
- 18 Jun, 2015 1 commit
-
-
Andrei Paskevich authored
-