[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*From*: "hengx...@xxxxxxxxx" <hengxin0912@xxxxxxxxx>*Date*: Tue, 6 Apr 2021 04:06:00 -0700 (PDT)*Ironport-hdrordr*: A9a23:JjnFuawvN1C2+ilzSukzKrPxXOskLtp033Aq2lEZdDV+dMuEm8ey2MkKzBOcskd1ZFgMu/ClfJOBT3TV6IJv7eAqV9qfdSTvpWfAFu1fxKT4xTmIIULD38tcz7olT69lFNbrB0N7hsqS2njeL/8F4P2qtJ+lnv3fyXAFd3AJV4hF4x1iAgiWVm1aLTMnObMDGJCR5tVKqlObEBwqR/+2H3wUG9XEzuekqLvdfRUECxQ7gTP+7g+A1biSKXml9yZbeDNJzLck/wH+4mjEz5Tml8uV4Tq07QTuxqUTvOHQ8J9qPezksLluFhzcziKhZIFvQLuH1QpF2N2H2RIPmMLPrwonH+kb0QKpQkiF5T/uxiH62jcv9HOK8y7ivVLT5ej6WRYzC89tp6J8GyGplnYIjZVE74Jytljp0aZqMQ==*References*: <52111fcc-e8df-469e-8894-c113ae398056n@googlegroups.com> <555B8BE7-2060-4E6F-B2DE-F609ABD05E62@gmail.com>

Hi Stephan,

Great thanks. It works (also replace "<<>>" line 13 by "{<<>>}").

Best regards,

Hengfeng Wei (hengxin)

On Tuesday, April 6, 2021 at 6:19:36 PM UTC+8 Stephan Merz wrote:

Hello,I am not trying to understand your definition but simply suggest how to make it syntactically legal. In the syntactic form{ e : x \in S, y \in T }the identifier x is not allowed to occur in S or T (cf. Specifying Systems, section 16.1.6). You must therefore use a nested set comprehension as in...ELSE LET Extend(m) == { <<m>> \o l : l \in LinearExtensionsUtil(...) }IN UNION { Extend(m) : m \in Minimal(...) }(Of course, you do not actually need to use a LET but can also replace the use of Extend in the body by its definition. However, I find it easier to read in this way.)StephanOn 6 Apr 2021, at 11:20, hengx...@gmail.com <hengx...@xxxxxxxxx> wrote:Hi All,I am writing a TLA+ specification of a consistency model which is defined based on relations. I need to generate all possible linear extensions (i.e., topological sortings) of a partial order.The following TLA+ code can be found at https://github.com/hengxin/tla-causal-consistency/blob/main/RelationUtils.tla.I am able to generate an arbitrary linear extension of a partial order as follows (I use this algorithm: https://en.wikipedia.org/wiki/Topological_sorting#Kahn's_algorithm):<AnyLinearExtension.png>where Minimal(R, S) returns the set of minimal elements of S given relation R,and LeftRestriction(R, m) returns the set of pairs whose first element is m.However, I failed to generate all possible linear extensions of a partial order:<AllLinearExtensions.png>TLC reports an error: Unknown operator 'm'.So how to generate all possible linear extensions of a partial order?Best regards,Hengfeng Wei (hengxin)--

You received this message because you are subscribed to the Google Groups "tlaplus" group.

To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/52111fcc-e8df-469e-8894-c113ae398056n%40googlegroups.com.

<AnyLinearExtension.png><AllLinearExtensions.png>

You received this message because you are subscribed to the Google Groups "tlaplus" group.

To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+unsubscribe@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/7e058024-e47a-4702-9829-bddc415b187cn%40googlegroups.com.

**References**:

- Prev by Date:
**Re: [tlaplus] How to generate all possible linear extensions (i.e., topological sortings) of a partial order?** - Next by Date:
**Re: [tlaplus] How to express this set comprehension in TLA+?** - Previous by thread:
**Re: [tlaplus] How to generate all possible linear extensions (i.e., topological sortings) of a partial order?** - Next by thread:
**[tlaplus] TLA+ Graph Explorer** - Index(es):