[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tlaplus] ENABLED Operator Theorems
Hello,
> On 3 May 2017, at 10:46, kacem belout <belout...@xxxxxxxxx> wrote:
>
> Hallo,
>
> I noticed the following theorems concerning the ENABLED Operator that I hopefully would like to prove them in a formal way ( i.e Formally ( Logically and/or symbolically) as using Inference Rules)
as I tried to explain before, in order to give a precise meaning to your notion of "formal" proof, you would need to give clear definitions.
>
> In the context of the Raw Logic (RTLA), for any Action A, we assert the following valid statements.
I don't understand why you insist on Raw TLA: the difference between RTLA and TLA only exists at the temporal level, and you don't consider any temporal formulas. Also, it would help if you used actual TLA syntax.
> Let me know if any one is not valid by giving a counterexample, thanks !.
>
> Theorem 1 : A ==> ENABLED(A)
> Proof : Now, I don't know How To formally and mechanically derive ENABLED(A) From A which is expressed in terms of primed variables and unprimed variables.
See my previous answer: the implication holds for the same reason why F => \E X: F is a theorem of first-order logic.
>
> Theorem 2 : \Not ENABLED(A) ==> \Not A
> Proof : Is equivalent to Theorm1 by propositional logic rule (implication equivalente to its contrapositive).
Yes, so it's just a corollary to the previous theorem.
>
> Theorem 3 : \Not A ==> \Not ENABLED(A)
Wrong. Consider A == x = 0 /\ x' = 1 and a state s that assigns 0 to x. Then the stuttering step (s,s) satisfies ~ A and ENABLED A.
>
> Theorem 4 : \Not (ENABLED(A)) ==> ENABLED( \Not (A))
Consequence of Theorems 1 and 2.
>
> Theorem 5 : ENABLED(A) <==> ENABLED(-1(A)) , where -1(A) == (A)-1 ; inverse of A. (A)-1 == A ( v ' <- v , v <- v ')
Wrong, take again A == x=0 /\ x'=1. then
ENABLED A \equiv x = 0
ENABLED (A)-1 \equiv x = 1
>
> Theorem 6 : For any state predicate P. P <==> ENABLED(P)
Correct.
> Theorem 7 : For any state predicate P. P ==> ENABLED((P) '), where ' == Prime operator.
Correct. (ENABLED P' is true iff P is satisfiable.)
> Theorem 8 : For any state predicate P. P ==> ENABLED(((p)')-1)
Isn't (P')-1 = P, so this is the same as theorem 6?
Regards,
Stephan