Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

557 users

0 votes

Transform the formula for an arbitrary variable ordering into CNF:

((a|c|a|c<->(d|d)&c)->(c|b|b|a->!b|(d<->a)))
is it correct what I have done so far? (I don't know how to continue)
in * TF "Emb. Sys. and Rob." by (1.7k points)

2 Answers

0 votes
 
Best answer

You have applied the Shannon decomposition in an incorrect way. Look the following are the correct rules:

    for computing DNF
           phi = a&phi[a<-true] | !a&phi[a<-false]

    for computing CNF
           phi = (a->phi[a<-true]) & (!a->phi[a<-false])
               = (!a | phi[a<-true]) & (a | phi[a<-false])

However, you mixed the two rules up and did the following which is not correct:

    phi = (a | phi[a<-true]) & (!a | phi[a<-false])
by (170k points)
selected by
0 votes
  1. In the fourth formula, you seem to have transformed d <-> false to d. It should be ¬d.
  2. The signs in front of variable a are flipped. It should be (a → positive cofactor) & (¬a → negative confactor) = (¬a | positive cofactor) & (a | negative confactor)
  3. There are parenthesis missing. & binds stronger than |. If you just write x | y & ¬x | y, then that's not the if-then-else you want to express. You should write (x | y) & (¬x | y)
  4. Why did you stop? Try to continue with simplification like this: X→true = true, X→false = ¬X, true→X=X, false→X=true
by (25.6k points)
edited by
Imprint | Privacy Policy
...