Programming Lab 1: Conjunctive Normal Form

Submission deadline: Sunday, March 6, 2016 (11:59 p.m.)

TA: Diego Alejandro Montoya Zapata

Introduction

The aim of this programming lab is to translate propositional formulae to the conjunctive normal form.

Syntactical Conventions

The set of well-formed formulae is defined by the following grammar:

      for ::= p         (proposition symbols)
          | ~for        (negation)
          | for ^ for   (conjunction)
          | for ∨ for   (disjunction)
          | for --> for (implication)
          | for <-> for (bi-implication)
    

where ~ has higher precedence than ^, ^ has higher precedence than , has higher precedence than --> and --> has higher precedence than <->.

Assignment (80%)

A formula is in conjunctive normal form (CNF) if it is a conjunction of disjunctions of literals [Ben-Ari (2012), Definition 4.1]. Every formula in propositional logic can be transformed into an equivalent formula in CNF [Ben-Ari (2012), Theorem 4.3].

Clean Code (10%)

Before submitting your code, clean it up! Clean code:

Submission (10%)

Submission is electronic. Send an email to asr(at)eafit(dot)edu(dot)co and dmonto39(at)eafit(dot)edu(dot)co and attach a compressed file (.zip or .tar.gz) with your solution.

Your submission has to include the following:

Notes

The programming lab is individual.

Bibliography

Ben-Ari, Mordechai (2012). Mathematical Logic for Computer Science. 3rd ed. Springer.


CM08451 Logic Valid XHTML
        1.1