Skip to content

Proposal: Remove []ASSUME/[]PROVE construct from the language #20

@ahelwer

Description

@ahelwer

In the same vein as #17 and #18, some "janitorial"-level changes to the language spec. Actually it isn't really clear that this construct was ever fully part of the language spec, but it is fully supported by SANY so that probably elevates it to the level of deserving discussion.

Many TLAPM users will be familiar with the ASSUME/PROVE construct:

---- MODULE Test ----
THEOREM
  ASSUME TRUE
  PROVE TRUE
====

SANY also supports another construct, seemingly a temporal variant:

---- MODULE Test ----
THEOREM
  []ASSUME TRUE
  []PROVE TRUE
====

TLAPM does not parse this file. What the construct does or means I have no idea, as it is not covered in the TLA+2 language guide nor in any other document I can find. It is, however, supported at both the syntactic and semantic level of the SANY TLA+ parser; see references to it here: https://github.com/search?q=repo%3Atlaplus%2Ftlaplus%20%5B%5DASSUME&type=code

A comment reveals it was added by Leslie Lamport February 9th, 2011.

Unless this construct enables writing proofs that can currently not be written or could be associated with some compelling feature, I propose removing it from (not adding it to?) the TLA+ language specification. Work entailed:

  1. Remove SANY support for this construct at the semantic level
  2. Remove SANY support for this construct at the syntax level
  3. Amend the various standardized test corpora to ensure all TLA+ parsers reject this syntax

Found during work on tlaplus/tlaplus#1140

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions