0% found this document useful (0 votes)
19 views4 pages

C34 Exp6 AI

The document discusses implementing first-order logic in Python. It provides an overview of the basic elements and syntax of first-order logic, including constants, variables, predicates, functions, connectives, equality, and quantifiers. It then shows an example Python implementation using the Sympy library to define logical expressions and check satisfiability.

Uploaded by

xomapa6614
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views4 pages

C34 Exp6 AI

The document discusses implementing first-order logic in Python. It provides an overview of the basic elements and syntax of first-order logic, including constants, variables, predicates, functions, connectives, equality, and quantifiers. It then shows an example Python implementation using the Sympy library to define logical expressions and check satisfiability.

Uploaded by

xomapa6614
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Experiment No.

6
Roll No.: C-34 Name: Soham S Shinde
Class: TE-C COMPS Batch: C2
Date of Experiment: Date of Submission: 24/03/2024
Grade:

Aim: Implementing First Order Logic

Requirements: Python version - 3.11, IDE: PyCharm 2023.3.2

Theory:

First-Order logic:
o First-order logic is another way of knowledge representation in artificial intelligence. It is
an extension to propositional logic.
o FOL is sufficiently expressive to represent the natural language statements in a concise
way.

o First-order logic is also known as Predicate logic or First-order predicate logic. First-
order logic is a powerful language that develops information about the objects in a
more easy way and can also express the relationship between those objects.
o First-order logic (like natural language) does not only assume that the world contains
facts like propositional logic but also assumes the following things in the world:
o Objects: A, B, people, numbers, colors, wars, theories, squares, pits, wumpus, ......
o Relations: It can be unary relation such as: red, round, is adjacent, or n-any
relation such as: the sister of, brother of, has color, comes between
o Function: Father of, best friend, third inning of, end of, ......
o As a natural language, first-order logic also has two main parts:
a. Syntax
b. Semantics

Syntax of First-Order logic:

The syntax of FOL determines which collection of symbols is a logical expression in


first-order logic. The basic syntactic elements of first-order logic are symbols. We write
statements in short-hand notation in FOL.
Basic Elements of First-order logic:

Following are the basic elements of FOL syntax:

Constant 1, 2, A, John, Mumbai, cat,....

Variables x, y, z, a, b,....

Predicates Brother, Father, >,....

Function sqrt, LeftLegOf, ....

Connectives 𝖠, ∨, ¬, ⇒, ⇔

Equality ==

Quantifier ∀, ∃

Atomic sentences:
o Atomic sentences are the most basic sentences of first-order logic. These sentences are
formed from a predicate symbol followed by a parenthesis with a sequence of terms.
o We can represent atomic sentences as Predicate (term1, term2, ....... , term n).

Example: Ravi and Ajay are brothers: => Brothers(Ravi, Ajay).


Chinky is a cat: => cat (Chinky).

Complex Sentences:
o Complex sentences are made by combining atomic sentences using connectives.

First-order logic statements can be divided into two parts:

o Subject: Subject is the main part of the statement.


o Predicate: A predicate can be defined as a relation, which binds two atoms together in
a statement.

Consider the statement: "x is an integer.", it consists of two parts, the first part x is
the subject of the statement and second part "is an integer," is known as a predicate.
Quantifiers in First-order logic:
o A quantifier is a language element which generates quantification, and quantification
specifies the quantity of specimen in the universe of discourse.
o These are the symbols that permit to determine or identify the range and scope of the
variable in the logical expression. There are two types of quantifier:
a. Universal Quantifier, (for all, everyone, everything)
b. Existential quantifier, (for some, at least one).

Universal Quantifier:

Universal quantifier is a symbol of logical representation, which specifies that the


statement within its range is true for everything or every instance of a particular thing.

The Universal quantifier is represented by a symbol ∀, which resembles an inverted A.

Implementation :

Input :

from sympy import symbols


from sympy.logic import And, Or, Implies, Not, Equivalent
from sympy.logic.inference import satisfiable

# Define symbols for variables


A, B, C = symbols('A B C')

# Define a first-order logic expression


expression = And(A, Or(B, C))

# Print the expression


print("FOL Expression:", expression)

# Check if the expression is satisfiable


print("Is Satisfiable:", satisfiable(expression))

# You can also define more complex expressions using logical connectives
expression2 = Implies(And(A, B), C)
print("Complex FOL Expression:", expression2)
# Perform logical operations
negation = Not(expression)
print("Negation:", negation)

equivalence = Equivalent(A, B)
print("Equivalence:", equivalence)

Output :

You might also like