Giter Club home page Giter Club logo

Comments (7)

jovanovski avatar jovanovski commented on July 17, 2024

Could you give us an example where the CNF fails?

from uvasoftwaretesting15.

mwijngaard avatar mwijngaard commented on July 17, 2024

I also take issue with point nr 3. If you look at wikipedia then it says:

"In Boolean logic, a formula is in conjunctive normal form (CNF) or clausal normal form if it is a conjunction of clauses, where a clause is a disjunction of literals; otherwise put, it is an AND of ORs"

We even discussed the fact that a tautology could result in an empty conjunction with Bert Lisser and he said that an empty conjunction was perfectly valid. Therefore a conjunction or disjunction of one term also seems valid to me.

from uvasoftwaretesting15.

grammarware avatar grammarware commented on July 17, 2024

@jovanovski toCnf (Prop 1)

@mwijngaard empty conjunctions and disjunctions are somewhat awkward but valid encodings for true and false. There is no excuse for one-element conjunctions and disjunctions. How would you write them down?

from uvasoftwaretesting15.

mwijngaard avatar mwijngaard commented on July 17, 2024

How would you write an empty conjunction? They only make sense in a context
of computerised processing of formulas, and in that context a conjunction
of one term makes just as much sense. The fact is that we use these
specific datatypes for representing formulas and not standard mathematical
notation. Even the lecture notes directly mention that cnf form is
generally used in computer solvers. These solvers must internally work with
conjunctions of one term instead of a normalized version, since it's a more
general format, fit for computerised processing, and it doesn't make sense
to make the solver logic more complex just because we want it to be able to
be written down in standard mathematical notation.

And btw, the show function is perfectly capable of writing them down, just
not in standard mathematical notation :-).

@jovanovski https://github.com/jovanovski toCnf (Prop 1)

@mwijngaard https://github.com/mwijngaard empty conjunctions and
disjunctions are somewhat awkward but valid encodings for true and false.
There is no excuse for one-element conjunctions and disjunctions. How would
you write them down?


Reply to this email directly or view it on GitHub
#3 (comment)
.

from uvasoftwaretesting15.

grammarware avatar grammarware commented on July 17, 2024

You write an empty conjunction down as ⊤ and an empty disjunction as ⊥. This is why I said that they are encodings of the top and bottom elements.

And btw, the show function is perfectly capable of writing them down, just not in standard mathematical notation :-).

Just as I could have given you feedback faster in Russian — but after some consideration chose not to ;)

from uvasoftwaretesting15.

mwijngaard avatar mwijngaard commented on July 17, 2024

from uvasoftwaretesting15.

grammarware avatar grammarware commented on July 17, 2024

This is not a point reduction, you get full points — but no bonus point.

Please feel free to take it up to Jan: he has the last word, and if he looks at the code and deems it worthy of a bonus, so be it.

from uvasoftwaretesting15.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.