Ejemplo n.º 1
0
from Logic.logic import Proposition, implies


def A(p, g):
    return p


def B(p, g):
    return (p or g)


def C(p, g):
    return (p and g)


def D(p, g):
    return implies((not p), g)


PROPOSITIONS = [A, B, C, D]
for p1 in PROPOSITIONS:
    for p2 in PROPOSITIONS:
        print Proposition(lambda p, g: implies(p1(p, g), p2(p, g)),
                          "%s => %s" %
                          (p1.__name__, p2.__name__)).satisfiability_report()
Ejemplo n.º 2
0
def D(p, g):
    return implies((not p), g)
Ejemplo n.º 3
0
from Logic.logic import Proposition, implies


print "implies(True, True)   = %s" % implies(True, True)
print "implies(False, False) = %s" % implies(False, False)

a = lambda p, q: p and implies(p, q)
print Proposition(a, "p and (p => q)").truth_table()

b = lambda p, q: not ((not p) or (not q))
print Proposition(b, "not ((not p) or (not q))").truth_table()

print Proposition(
    lambda p, q: a(p, q) == b(p, q),
                "(p and (p => q)) <=> (not ((not p) or (not q)))"
).truth_table()

print Proposition(
    lambda p: p or (not p),
             "p or (not p)"
).satisfiability_report()

print Proposition(
    lambda p: p and (not p),
             "p and (not p)"
).satisfiability_report()

print Proposition(
    lambda p, q: p or q or (p == q),
                "p or q or (p <=> q)"
).satisfiability_report()
Ejemplo n.º 4
0
from Logic.logic import Proposition, implies

print Proposition(lambda s, f: implies(s, f) == (s or (not f)),
                  "(s => f) <=> (s or (not f))").satisfiability_report()

print Proposition(lambda s, f: implies(s, f) == implies(not s, not f),
                  "(s => f) <=> ((not s) => (not f))").satisfiability_report()

print Proposition(lambda s, f: implies(s, f) == implies(not f, not s),
                  "(s => f) <=> ((not f) => (not s))").satisfiability_report()

print Proposition(lambda b, d: b or d or implies(b, d),
                  "b or d or (b => d)").satisfiability_report()

print Proposition(
    lambda b, d: (b and d) == (not ((not b) or (not d))),
    "b and d <=> not ((not b) or (not d))").satisfiability_report()
def D(p, g): return implies((not p), g)

PROPOSITIONS = [A, B, C, D]
from Logic.logic import Proposition, implies

def A(p, g): return p
def B(p, g): return (p or g)
def C(p, g): return (p and g)
def D(p, g): return implies((not p), g)

PROPOSITIONS = [A, B, C, D]
for p1 in PROPOSITIONS:
    for p2 in PROPOSITIONS:
        print Proposition(
            lambda p, g: implies(p1(p, g), p2(p, g)),
            "%s => %s" % (p1.__name__, p2.__name__)
        ).satisfiability_report()
(w0, w1), err = linear_regression(x, y)
print "(w0=%.1f, w1=%.1f) err=%.2f" % (w0, w1, err)


print "\n=== Problem 12 ==="
from Logic.logic import Proposition, implies
print Proposition(
    lambda a: not a,
             "not a"
).satisfiability_report()
print Proposition(
    lambda a: a or (not a),
             "a or (not a)"
).satisfiability_report()
print Proposition(
    lambda a, b, c: implies((a and (not a)), implies(b, c)),
                   "(a and (not a)) => (b => c)"
).satisfiability_report()
print Proposition(
    lambda a, b, c: implies(a, b) and implies(b, c) and implies(c, a),
                    "(a => b) and (b => c) and (c => a)"
).satisfiability_report()
print Proposition(
    lambda a, b, c: implies(a, b) and (not ((not a) or b)),
                    "(a => b) and (not ((not a) or b))"
).satisfiability_report()
print Proposition(
    lambda a, b, c: (implies(a, b) or implies(b, c)) == implies(a, c),
                    "((a => b) and (b => c)) == (a => c)"
).satisfiability_report()
from Logic.logic import Proposition, implies

print Proposition(
    lambda s, f: implies(s, f) == (s or (not f)),
                "(s => f) <=> (s or (not f))"
).satisfiability_report()

print Proposition(
    lambda s, f: implies(s, f) == implies(not s, not f),
                "(s => f) <=> ((not s) => (not f))"
).satisfiability_report()

print Proposition(
    lambda s, f: implies(s, f) == implies(not f, not s),
                "(s => f) <=> ((not f) => (not s))"
).satisfiability_report()

print Proposition(
    lambda b, d: b or d or implies(b, d),
                "b or d or (b => d)"
).satisfiability_report()

print Proposition(
    lambda b, d: (b and d) == (not ((not b) or (not d))),
                "b and d <=> not ((not b) or (not d))"
).satisfiability_report()
Ejemplo n.º 9
0
print "\n=== Problem 10 ==="
from MachineLearning.linear_regression import linear_regression, gaussian

x = [1.0, 3.0, 4.0, 5.0, 9.0]
y = [2.0, 5.2, 6.8, 8.4, 14.8]
(w0, w1), err = linear_regression(x, y)
print "(w0=%.1f, w1=%.1f) err=%.2f" % (w0, w1, err)

print "\n=== Problem 12 ==="
from Logic.logic import Proposition, implies

print Proposition(lambda a: not a, "not a").satisfiability_report()
print Proposition(lambda a: a or (not a),
                  "a or (not a)").satisfiability_report()
print Proposition(lambda a, b, c: implies((a and (not a)), implies(b, c)),
                  "(a and (not a)) => (b => c)").satisfiability_report()
print Proposition(
    lambda a, b, c: implies(a, b) and implies(b, c) and implies(c, a),
    "(a => b) and (b => c) and (c => a)").satisfiability_report()
print Proposition(lambda a, b, c: implies(a, b) and (not ((not a) or b)),
                  "(a => b) and (not ((not a) or b))").satisfiability_report()
print Proposition(
    lambda a, b, c: (implies(a, b) or implies(b, c)) == implies(a, c),
    "((a => b) and (b => c)) == (a => c)").satisfiability_report()

print "\n=== Problem 14 ==="
from MDP.grid import GridWorld

GRID = [[0, 0, None, 100], [0, 0, 0, 0]]