Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Desugaring the general case of EXCEPT #647

Closed
konnov opened this issue Mar 14, 2021 · 0 comments
Closed

[BUG] Desugaring the general case of EXCEPT #647

konnov opened this issue Mar 14, 2021 · 0 comments
Assignees
Labels
bug Fprepro Feature: TLA+ preprocessor

Comments

@konnov
Copy link
Collaborator

konnov commented Mar 14, 2021

Desugarer is incorrectly pre-processing the general case of [f EXCEPT !a_1 = e_1, ..., !a_n = e_n]. We should use the general semantics from the book and give up on parallel assignment semantics, as it is impossible to achieve when the accessors a_1, ..., a_n contain multiple indices.

@konnov konnov added the bug label Mar 14, 2021
@konnov konnov added this to the March iteration milestone Mar 14, 2021
@konnov konnov self-assigned this Mar 14, 2021
@konnov konnov added the Fprepro Feature: TLA+ preprocessor label Mar 19, 2021
konnov added a commit that referenced this issue Mar 23, 2021
* add a watchdog listener

* close #647: Desugarer preprocesses the general case of EXCEPT

* unrelease notes

* type-aware test for Desugarer

* made Desugarer type-aware!

* fixed a type bug that was found by the type watchdog

* propagating types in AssignmentOperatorIntroduction

* made SkolemizationMarker type-aware

* made ExpansionMarker type-aware

* fixed TestSymbTransGenerator

* moved the integration tests to test/tla

* removed the Paxos tests, which is already in the integration tests

* enabled snowcat by default, as the preprocessing is type-aware

* Integrating types 7: victory over enthropy (#663)

* a temporary fix for the old type annotations

* a fix for lazy annotations of nullary operators

* fix SymbTransGenerator

* fixed plenty of integration tests

* fixed a bug in ITE, found by Jure

* made the TLC config parser type-aware

* add type annotations to the tests

* made VCGenerator type-aware

* moved TlaType1, TypedPredefs, and TypingException to lir, to break cyclic dependencies

* fixing types in TestConstAndDefRewriter

* made TlcConfigImporter type-aware

* fixed TestTlcConfigImporter

* removed the reference to lir.

* Integrating types 8: using new types in the checker core (#668)

* migrated rewriting rules to use the types inferred by snowcat

* forbid the old type annotations

* fixed FunExcept

* the error about old type annotations is qualified as a normal user error

* fixed: set constructor, map, and in

* fix the CHOOSE rule

* removed the old type annotations, as they are no longer supported

* Mad TestSymbStateRewriterBool, AndRule, and OrRule type-aware

* made TestSymbStateRewriterInt typed

* fixed all but one tests in TestSymbStateRewriterAssignment

* remove the tests that are labelled as ignore

* fix a funny bug in caching expressions

* fix arena corruption in PowSetCtorRule

* fix a bug in Builder: produced Int instead of Nat

* equality throws when incomparable types are met

* fixed an error message for infinite sets

* made tests in TestSymbStateRewriterSet type-aware

* eliminated the old TrivialTypeFinder and ModelChecker, no need to maintain them

* fix a bug in FunExceptRule

* fix TestSymbStateRewriterFun

* fix TestSymbStateRewriterStr and TestSymbStateRewriterTuple

* fix TestSymbStateRewriterRecord and a bug in EXCEPT

* fix TestCherryPick

* remove the unit test that is covered by TestKeramelizer

* fix TestSymbStateRewriterChoose

* fix TestSymbStateRewriterControl

* fix TestSymbStateRewriterExpand

* fix TestSymbStateRewriterFiniteSets

* TestSymbStateRewriterFunSet

* fix TestSymbStateRewriterRecFun

* fix TestSymbStateRewriterSequence

* fix TestSeqModelChecker

* fix TestSymbStateDecoder

* fix TestSymbStateRewriterTlc

* old annotations are expected to throw an error now

* fix TestSymbStateRewriterPowerset

* fixed cherry picking of records that have compatible but different domains

* fixed type annotations in SimpT1

* fix cherry-picking of records that was broken in Paxos

* removed --with-snowcat from CLI

* changelog

* Integrating types 9: a few bugfixes (#671)

* a better error message

* fix the structure of EXCEPT expressions + add support for sequences

* fixed the comment by Shon
konnov added a commit that referenced this issue Mar 23, 2021
…type-aware (#657)

* bugfix: translating labels

* fixing types in Unroller and Inliner

* moved and rewrote TestInlinerofUserOper, made it type-aware

* made TestUnroller type-aware

* made ParameterNormalizer type-aware

* made TestUnroller and Unroller type-aware

* running the type checker right after the parser

* a reference to the closed issue

* Integrating types 6: made Desugarer type aware (#658)

* add a watchdog listener

* close #647: Desugarer preprocesses the general case of EXCEPT

* unrelease notes

* type-aware test for Desugarer

* made Desugarer type-aware!

* fixed a type bug that was found by the type watchdog

* propagating types in AssignmentOperatorIntroduction

* made SkolemizationMarker type-aware

* made ExpansionMarker type-aware

* fixed TestSymbTransGenerator

* moved the integration tests to test/tla

* removed the Paxos tests, which is already in the integration tests

* enabled snowcat by default, as the preprocessing is type-aware

* Integrating types 7: victory over enthropy (#663)

* a temporary fix for the old type annotations

* a fix for lazy annotations of nullary operators

* fix SymbTransGenerator

* fixed plenty of integration tests

* fixed a bug in ITE, found by Jure

* made the TLC config parser type-aware

* add type annotations to the tests

* made VCGenerator type-aware

* moved TlaType1, TypedPredefs, and TypingException to lir, to break cyclic dependencies

* fixing types in TestConstAndDefRewriter

* made TlcConfigImporter type-aware

* fixed TestTlcConfigImporter

* removed the reference to lir.

* Integrating types 8: using new types in the checker core (#668)

* migrated rewriting rules to use the types inferred by snowcat

* forbid the old type annotations

* fixed FunExcept

* the error about old type annotations is qualified as a normal user error

* fixed: set constructor, map, and in

* fix the CHOOSE rule

* removed the old type annotations, as they are no longer supported

* Mad TestSymbStateRewriterBool, AndRule, and OrRule type-aware

* made TestSymbStateRewriterInt typed

* fixed all but one tests in TestSymbStateRewriterAssignment

* remove the tests that are labelled as ignore

* fix a funny bug in caching expressions

* fix arena corruption in PowSetCtorRule

* fix a bug in Builder: produced Int instead of Nat

* equality throws when incomparable types are met

* fixed an error message for infinite sets

* made tests in TestSymbStateRewriterSet type-aware

* eliminated the old TrivialTypeFinder and ModelChecker, no need to maintain them

* fix a bug in FunExceptRule

* fix TestSymbStateRewriterFun

* fix TestSymbStateRewriterStr and TestSymbStateRewriterTuple

* fix TestSymbStateRewriterRecord and a bug in EXCEPT

* fix TestCherryPick

* remove the unit test that is covered by TestKeramelizer

* fix TestSymbStateRewriterChoose

* fix TestSymbStateRewriterControl

* fix TestSymbStateRewriterExpand

* fix TestSymbStateRewriterFiniteSets

* TestSymbStateRewriterFunSet

* fix TestSymbStateRewriterRecFun

* fix TestSymbStateRewriterSequence

* fix TestSeqModelChecker

* fix TestSymbStateDecoder

* fix TestSymbStateRewriterTlc

* old annotations are expected to throw an error now

* fix TestSymbStateRewriterPowerset

* fixed cherry picking of records that have compatible but different domains

* fixed type annotations in SimpT1

* fix cherry-picking of records that was broken in Paxos

* removed --with-snowcat from CLI

* changelog

* Integrating types 9: a few bugfixes (#671)

* a better error message

* fix the structure of EXCEPT expressions + add support for sequences

* fixed the comment by Shon
konnov added a commit that referenced this issue Mar 24, 2021
* annotated all tests and fixed some

* Integrating types 5: made Inliner, Unroller, and ParameterNormalizer type-aware (#657)

* bugfix: translating labels

* fixing types in Unroller and Inliner

* moved and rewrote TestInlinerofUserOper, made it type-aware

* made TestUnroller type-aware

* made ParameterNormalizer type-aware

* made TestUnroller and Unroller type-aware

* running the type checker right after the parser

* a reference to the closed issue

* Integrating types 6: made Desugarer type aware (#658)

* add a watchdog listener

* close #647: Desugarer preprocesses the general case of EXCEPT

* unrelease notes

* type-aware test for Desugarer

* made Desugarer type-aware!

* fixed a type bug that was found by the type watchdog

* propagating types in AssignmentOperatorIntroduction

* made SkolemizationMarker type-aware

* made ExpansionMarker type-aware

* fixed TestSymbTransGenerator

* moved the integration tests to test/tla

* removed the Paxos tests, which is already in the integration tests

* enabled snowcat by default, as the preprocessing is type-aware

* Integrating types 7: victory over enthropy (#663)

* a temporary fix for the old type annotations

* a fix for lazy annotations of nullary operators

* fix SymbTransGenerator

* fixed plenty of integration tests

* fixed a bug in ITE, found by Jure

* made the TLC config parser type-aware

* add type annotations to the tests

* made VCGenerator type-aware

* moved TlaType1, TypedPredefs, and TypingException to lir, to break cyclic dependencies

* fixing types in TestConstAndDefRewriter

* made TlcConfigImporter type-aware

* fixed TestTlcConfigImporter

* removed the reference to lir.

* Integrating types 8: using new types in the checker core (#668)

* migrated rewriting rules to use the types inferred by snowcat

* forbid the old type annotations

* fixed FunExcept

* the error about old type annotations is qualified as a normal user error

* fixed: set constructor, map, and in

* fix the CHOOSE rule

* removed the old type annotations, as they are no longer supported

* Mad TestSymbStateRewriterBool, AndRule, and OrRule type-aware

* made TestSymbStateRewriterInt typed

* fixed all but one tests in TestSymbStateRewriterAssignment

* remove the tests that are labelled as ignore

* fix a funny bug in caching expressions

* fix arena corruption in PowSetCtorRule

* fix a bug in Builder: produced Int instead of Nat

* equality throws when incomparable types are met

* fixed an error message for infinite sets

* made tests in TestSymbStateRewriterSet type-aware

* eliminated the old TrivialTypeFinder and ModelChecker, no need to maintain them

* fix a bug in FunExceptRule

* fix TestSymbStateRewriterFun

* fix TestSymbStateRewriterStr and TestSymbStateRewriterTuple

* fix TestSymbStateRewriterRecord and a bug in EXCEPT

* fix TestCherryPick

* remove the unit test that is covered by TestKeramelizer

* fix TestSymbStateRewriterChoose

* fix TestSymbStateRewriterControl

* fix TestSymbStateRewriterExpand

* fix TestSymbStateRewriterFiniteSets

* TestSymbStateRewriterFunSet

* fix TestSymbStateRewriterRecFun

* fix TestSymbStateRewriterSequence

* fix TestSeqModelChecker

* fix TestSymbStateDecoder

* fix TestSymbStateRewriterTlc

* old annotations are expected to throw an error now

* fix TestSymbStateRewriterPowerset

* fixed cherry picking of records that have compatible but different domains

* fixed type annotations in SimpT1

* fix cherry-picking of records that was broken in Paxos

* removed --with-snowcat from CLI

* changelog

* Integrating types 9: a few bugfixes (#671)

* a better error message

* fix the structure of EXCEPT expressions + add support for sequences

* fixed the comment by Shon

* fixed the accidental bug introduced in refactoring
@konnov konnov closed this as completed in fb90414 Mar 24, 2021
This was referenced Mar 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Fprepro Feature: TLA+ preprocessor
Projects
None yet
Development

No branches or pull requests

1 participant