Question: What does the Normalize(f, form=CNF) command produce?

In particular, Maple contains the Logic package, which is useful in teaching. But I do not understand the outputs of the Normalize command. Here is an example:

>with(Logic);

[`&and`, `&iff`, `&implies`, `&nand`, `&nor`, `&not`, `&or`, `&xor`, BooleanSimplify, Canonicalize, Contradiction, Dual, Environment, Equivalent, Export, Implies, Import, Normalize,
 Random, Satisfy, Tautology, TruthTable]

>f := Random({A, B, C});

f := `&and`(`&or`(`&and`(`&or`(`&and`(`&or`(`&and`(`&and`(A, B), C), `&and`(A, B)),
`&not`(C)), `&and`(A, C)), `&not`(B)), `&and`(B, C)), `&not`(A))

>Normalize(f, form = CNF);

    Logic:-&and(Logic:-&or(A, B), Logic:-&or(A, C), Logic:-&or(B, C),

      Logic:-&or(A, B, C), Logic:-&or(A, B, Logic:-&not(C)),

      Logic:-&or(A, C, Logic:-&not(B)), Logic:-&or(B, C, Logic:-&not(A)))

 As far as I understand it, this is neither the Perfect CNF nor one of the Minimal CNFs. By the way, it would be very useful to upgrade this package with predicates.

Download logic.mw

 

 

Please Wait...