whitemech / LTLf2DFA

From LTLf / PPLTL to Deterministic Finite-state Automata (DFA)
http://ltlf2dfa.diag.uniroma1.it/
GNU Lesser General Public License v3.0
61 stars 9 forks source link

Question: Semantics #69

Open nmanginas opened 8 months ago

nmanginas commented 8 months ago

Hi many thanks for the tool. I am trying to convert the formula (WX(a) <-> b) for which the automaton is this:

image

Shouldn't the string "~b", i.e. not b be accepted here? Am I missing something?

Thanks

francescofuggitti commented 8 months ago

Hi @nmanginas,

thanks for reaching out! Yes, you're right. The string "~b" should be accepted. This is a bug (a nice viz is here). Now, I don't have much time to look into it, but I'll try to do so asap.

Thank you!

nickmagginas commented 7 months ago

I am not sure this is wrong after all: The formula WX(a) <-> b is equivelant to (WX(a) & b) | !(WX a) & ~b) which in NNF would correspond to (WX(a) & b) | (X ~a) & ~b) per the rules in slide 32 here. In that case, I am thinking about this bottom up instead of top down as the compilation done here, it does make sense. Which begs the question what is the formula used to encode the desired behavior which is (WX a & b) | (WX ~a) & ~b). Which per the rules is not equivalent to WX(a) <-> b. Don't know if this makes sense?

nickmagginas commented 7 months ago

Sorry different account :') I am the same person.

francescofuggitti commented 6 months ago

The transformation to NNF is correct but also in that case the string "~b" should be accepted. See the comparison here