Commit Graph

9 Commits

Author SHA1 Message Date
Dmitry Stefantsov 41f1407ca8 [kernel-f11n] Prove that valid configuration is well-formed
Bug:
Change-Id: Ib7272cbe377f9e8c71ca4d289d170a0cc173ba6b
Reviewed-on: https://dart-review.googlesource.com/12640
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-10-12 14:13:58 +00:00
Dmitry Stefantsov 6a5b0c7b60 [kernel-f11n] Add missing cases of configuration_wf and step
Bug:
Change-Id: I2c521a54a3d45b3908ebe0b6147a5cef1221e040
Reviewed-on: https://dart-review.googlesource.com/12441
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-10-12 14:07:44 +00:00
Dmitry Stefantsov fcd2abfe7b [kernel-f11n] Define the properties of configuration validity
Change-Id: I8f312cb914042a8713eae9171c724708d986e09f
Reviewed-on: https://dart-review.googlesource.com/10540
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-10-12 14:05:13 +00:00
Dmitry Stefantsov 005f998de0 [kernel-f11n] Add skeleton for soundness properties and theorems
Change-Id: I7230398d576f922ef150ec6678fcfda6b9cbfc40
Reviewed-on: https://dart-review.googlesource.com/8620
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-10-03 11:21:57 +00:00
Dmitry Stefantsov 172aecaac8 [kernel-f11n] Move another helper theorem about maps to Common.v
Change-Id: Ice6d0c2c6fec6a9ae525d300799892ca4bb563bc
Reviewed-on: https://dart-review.googlesource.com/9480
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-10-02 15:15:40 +00:00
Dmitry Stefantsov fbf3c4f8f1 [kernel-f11n] Fix operational semantics w.r.t. changes in object model
Recently `member_env` was simplified in the object model, and the
corresponding changes should be done in the operational semantics.
Additionally, the existence theorem now can be fully proven.

Change-Id: I30f86bd5d7e9b89eefc02fd51d928a9af139eee1
Reviewed-on: https://dart-review.googlesource.com/9341
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-09-29 08:15:03 +00:00
Dmitry Stefantsov 1c882d8958 [kernel-f11n] Use getters in operational semantics and update hypotheses
The changes in the object model that introduce getters are reflected in
`value_of_type`, `step`, and `configuration_wf` relationships.  Additionally,
the program well-formedness hypothesis is updated, so that it uses `lib_to_env`
function defined in the object model.  A few other well-formedness hypotheses
are added.  The existence proof for the next configuration is adjusted.

Change-Id: I14ca8aac5830a6ea0fc96f3f37818fdda3fa2c07
Reviewed-on: https://dart-review.googlesource.com/8880
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-09-28 13:44:10 +00:00
Samir Jindel 77736e83f2 [kernel-f11n] Fix statement typing and complete proof of statement typing consistency.
Previously, we inferred the return type of statements in a way that made it
impossible to prove the statement typing consistency. Now, we use just the
stated return type for checking statements.

The proofs of statement typing are complete, except for one result generalizing
the expression typing consistency result to multiple variables changing; this
result is obvious to see directly from the provided lemmas but very tedious to
prove in Coq.

Bug:
Change-Id: I0bbcfb613df7510015f278fa85021ba0b3e57503
Reviewed-on: https://dart-review.googlesource.com/9020
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2017-09-28 13:20:00 +00:00
Dmitry Stefantsov 5daf3c6d9d [kernel] Add the theorem about existence of next configuration
* The definition of the well-formedness property for
  configurations is added.
* The theorem that states that the abstract CESK-machine can
  make one transition step from any well-formed configuration
  is defined and proven.
* Execution of a variable declaration statement is added to
  the operational semantics formalization with all necessary
  changes (one new eval configuration, three new transition
  rules).
* Some auxiliary theorems are added. One of them states that
  any runtime value has its method bodies in the function
  environment.

Change-Id: I95f233a4db498ce0df76983d9e605c3c263100bb
Reviewed-on: https://dart-review.googlesource.com/7266
Reviewed-by: Samir Jindel <sjindel@google.com>
2017-09-22 08:55:43 +00:00