Skip to content
This repository has been archived by the owner on May 23, 2023. It is now read-only.

Improving support for functions of multiple arguments #7

Open
johnyf opened this issue Jul 19, 2017 · 0 comments
Open

Improving support for functions of multiple arguments #7

johnyf opened this issue Jul 19, 2017 · 0 comments

Comments

@johnyf
Copy link

johnyf commented Jul 19, 2017

This is a known issue (related to tuples) mentioned here in order to document it and associate to other issues. Examples for tlapm v1.4.3:

  • tlapm does not parse the unsupported syntax: [<< a, b >> \in S |-> TRUE].
  • tlapm parses [a \in S, b \in S |-> TRUE] and [a, b \in S |-> TRUE], but it does not prove equality, as shown in the module test below.
------------------------------- MODULE test --------------------------------
CONSTANT S

(* `tlapm` cannot prove the following theorem. *)
g == [a, b \in S |-> TRUE]
THEOREM g = [a, b \in S |-> TRUE]
    BY DEF g


(* For comparison, `tlapm` can prove the following claims: *)
h == [a \in S |-> TRUE]
THEOREM h = [a \in S |-> TRUE]
    BY DEF h


p == [t \in S \X S |-> << t[1], t[2] >> ]
THEOREM p = [t \in S \X S |-> << t[1], t[2] >> ]
    BY DEF p
================================================================================

tla2sany test.tla confirms that the module test is well formed, but tlapm raises:

Error: Could not prove or check:
         ASSUME NEW CONSTANT S,
                g == [a, b \in S |-> TRUE]
         PROVE  g = [a, b \in S |-> TRUE]

This issue appears to be relevant to #5 and #6.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

1 participant