Propositional and First-Order Logic: Andreas Geyer-Schulz and Chuck Dyer

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 74

Propositional and

First-Order Logic

1
Some material adopted from notes by Andreas Geyer-Schulz and Chuck Dyer
Logic roadmap overview
• Propositional logic (review)
• Problems with propositional logic
• First-order logic (review)
– Properties, relations, functions, quantifiers, …
– Terms, sentences, wffs, axioms, theories, proofs,

• Extensions to first-order logic
• Logical agents
– Reflex agents
– Representing change: situation calculus, frame
problem
– Preferences on actions
2
– Goal-based agents
Propositional
Logic:
Review
3
Big Ideas
• Logic is a great knowledge representation
language for many AI problems
• Propositional logic is the simple
foundation and fine for some AI problems
• First order logic (FOL) is much more
expressive as a KR language and more
commonly used in AI
• There are many variations: horn logic,
higher order logic, three-valued logic,
probabilistic logics, etc.
4
Propositional logic
• Logical constants: true, false
• Propositional symbols: P, Q,... (atomic
sentences)
• Wrapping parentheses: ( … )
• Sentences are combined by connectives:
and [conjunction]
 or [disjunction]
 implies [implication / conditional]
 is equivalent [biconditional]
 not [negation]
• Literal: atomic sentence or negated atomic
sentence
P,  P
5
Examples of PL sentences
• (P  Q)  R
“If it is hot and humid, then it is raining”
•QP
“If it is humid, then it is hot”
•Q
“It is humid.”
• We’re free to choose better symbols, btw:
Ho = “It is hot”
Hu = “It is humid”
R = “It is raining”
6
Propositional logic (PL)
• Simple language for showing key ideas and definitions
• User defines set of propositional symbols, like P and Q
• User defines semantics of each propositional
symbol:
– P means “It is hot”, Q means “It is humid”, etc.
• A sentence (well formed formula) is defined as
follows:
– A symbol is a sentence
– If S is a sentence, then S is a sentence
– If S is a sentence, then (S) is a sentence
– If S and T are sentences, then (S  T), (S  T), (S  T), and
(S ↔ T) are sentences
– A sentence results from a finite number of applications of the
7
rules
Some terms
• The meaning or semantics of a sentence
determines its interpretation
• Given the truth values of all symbols in a
sentence, it can be “evaluated” to
determine its truth value (True or False)
• A model for a KB is a possible world – an
assignment of truth values to
propositional symbols that makes each
sentence in the KB True
8
Model for a KB
• Let the KB be [PQR, Q  P]
• What are the possible models? Consider all
possible assignments of T|F to P, Q and R and
check truth tables
– FFF: OK
– FFT: OK P: it’s hot
– FTF: NO Q: it’s humid
– FTT: NO R: it’s raining
– TFF: OK
– TFT: OK
– TTF: NO
– TTT: OK
• If KB is [PQR, Q  P, Q], then the only model
9
is TTT
More terms
• A valid sentence or tautology is a sentence
that is True under all interpretations, no matter
what the world is actually like or what the
semantics is. Example: “It’s raining or it’s not
raining”
• An inconsistent sentence or contradiction
is a sentence that is False under all
interpretations. The world is never like what it
describes, as in “It’s raining and it’s not raining.”
• P entails Q, written P |= Q, means that
whenever P is True, so is Q. In other words, all
models of P are also models of Q.
10
Truth tables
• Truth tables are used to define logical connectives
• and to determine when a complex sentence is true
given the values of the symbols in it
Truth tables for the five logical connectives

Example of a truth table used for a complex sentence

11
On the implies connective: P 
Q
• Note that  is a logical connective
• So PQ is a logical sentence and has a
truth value, i.e., is either true or false
• If we add this sentence to the KB, it can
be used by an inference rule, Modes
Ponens, to derive/infer/prove Q if P is
also in the KB
• Given a KB where P=True and Q=True,
we can also derive/infer/prove that PQ
is True 12
PQ
• When is PQ true? Check all that
apply
 P=Q=true
 P=Q=false
 P=true, Q=false
 P=false, Q=true

13
PQ
• When is PQ true? Check all that apply
✔ P=Q=true

✔ P=Q=false

 P=true, Q=false
✔ P=false, Q=true

• We can get this from the truth table for 
• Note: in FOL it’s much harder to prove
that a conditional true.
– Consider proving prime(x)  odd(x)
14
Inference rules
• Logical inference creates new sentences that
logically follow from a set of sentences (KB)
• An inference rule is sound if every sentence X
it produces when operating on a KB logically
follows from the KB
– i.e., inference rule creates no contradictions
• An inference rule is complete if it can produce
every expression that logically follows from (is
entailed by) the KB.
– Note analogy to complete search algorithms
15
Sound rules of inference
• Here are some examples of sound rules of inference
• Each can be shown to be sound using a truth table
RULE PREMISE CONCLUSION
Modus Ponens A, A  B B
And Introduction A, B AB
And Elimination AB A
Double Negation A A
Unit Resolution A  B, B A
Resolution A  B, B  C A  C

16
Soundness of modus ponens

A B A→B OK?
True True True

True False False

False True True

False False True

17
Resolution
• Resolution is a valid inference rule producing
a new clause implied by two clauses containing
complementary literals
– A literal is an atomic symbol or its negation, i.e., P,
~P
• Amazingly, this is the only interference rule you
need to build a sound and complete theorem
prover
– Based on proof by contradiction and usually called
resolution refutation
• The resolution rule was discovered by Alan
Robinson (CS, U. of Syracuse) in the mid 60s 18
Resolution
• A KB is actually a set of sentences all of which
are true, i.e., a conjunction of sentences.
• To use resolution, put KB into conjunctive normal
form (CNF), where each sentence written as a
disjunc- tion of (one or more) literals
Tautologies
Example (AB)↔(~AB)
• KB: [PQ , QRS] (A(BC)) ↔(AB)(AC)
• KB in CNF: [~PQ , ~QR , ~QS]
• Resolve KB(1) and KB(2) producing: ~PR (i.e., PR)
• Resolve KB(1) and KB(3) producing: ~PS (i.e., PS)
• New KB: [~PQ , ~Q~R~S , ~PR , ~PS]
19
Soundness of the
resolution inference rule

From the rightmost three columns of this truth table, we


can see that
(α  β)  (β  γ) ↔ (α  γ)
is valid (i.e., always true regardless of the truth values
assigned to α, β and γ 20
Proving things
• A proof is a sequence of sentences, where each is a
premise or is derived from earlier sentences in the
proof by an inference rule
• The last sentence is the theorem (also called goal or
query) that we want to prove
• Example for the “weather problem”
1 Hu premise “It’s humid”
2 HuHo premise “If it’s humid, it’s hot”
3 Ho modus ponens(1,2) “It’s hot”
4 (HoHu)R premise “If it’s hot & humid, it’s
raining”
5 HoHu and introduction(1,3) “It’s hot and humid”
6R modus ponens(4,5) “It’s raining” 21
Horn sentences
• A Horn sentence or Horn clause has the form:
P1  P2  P3 ...  Pn  Qm where n>=0, m
in{0,1}
• Note: a conjunction of 0 or more symbols to left
of  and 0-1 symbols to right
• Special cases:
– n=0, m=1: P (assert P is true)
– n>0, m=0: PQ  (constraint: both P and Q can’t be
true)
– n=0, m=0: (well, there is nothing there!)
• Put in CNF: each sentence is a disjunction of
literals with at most one non-negative literal
P1   P2   P3 ...   Pn  Q (P  Q) = (P  Q)
22
Significance of Horn logic
• We can also have horn sentences in FOL
• Reasoning with horn clauses is much simpler
– Satisfiability of a propositional KB (i.e., finding
values for a symbols that will make it true) is NP
complete
– Restricting KB to horn sentences, satisfiability is in
P
• For this reason, FOL Horn sentences are the
basis for Prolog and Datalog
• What Horn sentences give up are handling, in a
general way, (1) negation and (2) disjunctions

23
Entailment and derivation
• Entailment: KB |= Q
– Q is entailed by KB (set sentences) iff there is
no logically possible world where Q is false
while all the sentences in KB are true
– Or, stated positively, Q is entailed by KB iff the
conclusion is true in every logically possible
world in which all the premises in KB are true
• Derivation: KB |- Q
– We can derive Q from KB if there’s a proof
consisting of a sequence of valid inference
steps starting from the premises in KB and
resulting in Q 24
Two important properties for inference
Soundness: If KB |- Q then KB |= Q
– If Q is derived from KB using a given set of rules
of inference, then Q is entailed by KB
– Hence, inference produces only real entailments,
or any sentence that follows deductively from the
premises is valid
Completeness: If KB |= Q then KB |- Q
– If Q is entailed by KB, then Q can be derived from
KB using the rules of inference
– Hence, inference produces all entailments, or all
valid sentences can be proved from the premises

25
Problems with
Propositional
Logic
26
Propositional logic: pro and con
• Advantages
– Simple KR language sufficient for some problems
– Lays the foundation for higher logics (e.g., FOL)
– Reasoning is decidable, though NP complete, and
efficient techniques exist for many problems
• Disadvantages
– Not expressive enough for most problems
– Even when it is, it can very “un-concise”

27
PL is a weak KR language
• Hard to identify “individuals” (e.g., Mary, 3)
• Can’t directly talk about properties of individuals
or relations between individuals (e.g., “Bill is
tall”)
• Generalizations, patterns, regularities can’t easily
be represented (e.g., “all triangles have 3 sides”)
• First-Order Logic (FOL) is expressive enough to
represent this kind of information using relations,
variables and quantifiers, e.g.,
• Every elephant is gray:  x (elephant(x) → gray(x))
• There is a white alligator:  x (alligator(X) ^ white(X))
28
PL Example
• Consider the problem of representing the
following information:
– Every person is mortal.
– Confucius is a person.
– Confucius is mortal.
• How can these sentences be represented so
that we can infer the third sentence from the
first two?

29
PL Example
• In PL we have to create propositional symbols to stand
for all or part of each sentence, e.g.:
P = “person”; Q = “mortal”; R = “Confucius”
• The above 3 sentences are represented as:
P  Q; R  P; R  Q
• The 3rd sentence is entailed by the first two, but we
need an explicit symbol, R, to represent an individual,
Confucius, who is a member of the classes person and
mortal
• Representing other individuals requires introducing
separate symbols for each, with some way to represent
the fact that all individuals who are “people” are also
“mortal” 30
Hunt the Wumpus domain
• Some atomic propositions:
S12 = There is a stench in cell (1,2)
B34 = There is a breeze in cell (3,4)
W22 = Wumpus is in cell (2,2)
V11 = We’ve visited cell (1,1)
OK11 = Cell (1,1) is safe.

• Some rules:
(R1) S11  W11   W12   W21
(R2)  S21  W11   W21   W22   W31
(R3)  S12  W11   W12   W22   W13
(R4) S12  W13  W12  W22  W11

• The lack of variables requires us to give


similar rules for each cell! 31
After the third move

We can prove
that the Wumpus
is in (1,3) using
the four rules
given.

See R&N section


7.5

32
Proving W13
Apply MP with S11 and R1:
 W11   W12   W21
Apply And-Elimination to this, yielding 3 sentences:
 W11,  W12,  W21
Apply MP to ~S21 and R2, then apply And-elimination:
 W22,  W21,  W31
Apply MP to S12 and R4 to obtain:
W13  W12  W22  W11
Apply Unit resolution on (W13  W12  W22  W11) and W11:
W13  W12  W22
Apply Unit Resolution with (W13  W12  W22) and W22:
W13  W12
Apply UR with (W13  W12) and W12:
33
W13
Propositional Wumpus hunter problems

• Lack of variables prevents stating more


general rules
– We need a set of similar rules for each cell
• Change of the KB over time is difficult to
represent
– Standard technique is to index facts with
the time when they’re true
– This means we have a separate KB for
every time point
34
Propositional logic summary
• Inference is the process of deriving new sentences from old
– Sound inference derives true conclusions given true premises
– Complete inference derives all true conclusions from a set of
premises
• A valid sentence is true in all worlds under all interpretations
• If an implication sentence can be shown to be valid, then—given its
premise—its consequent can be derived
• Different logics make different commitments about what the world is
made of and what kind of beliefs we can have
• Propositional logic commits only to the existence of facts that may or
may not be the case in the world being represented
– Simple syntax and semantics suffices to illustrate the process of
inference
– Propositional logic can become impractical, even for very small worlds
35
Contents
• More on Representation
• Syntax and Semantics of First-Order Logic
• Using First Order Logic
• Knowledge Engineering in First-Order
Logic

36
First-Order Logic
• AKA First-Order Predicate Logic
• AKA First-Order Predicate Calculus

• Much more powerful the propositional (Boolean)


logic
– Greater expressive power than propositional logic
• We no longer need a separate rule for each square to say
which other squares are breezy/pits
– Allows for facts, objects, and relations
• In programming terms, allows classes, functions and
variables

37
Pros and Cons of Propositional
Logic
• + Propositional logic is declarative: pieces of syntax
correspond to facts
• + Propositional logic allows for partial / disjunctive /
negated information (unlike most data structures and DB
• + Propositional logic is compositional: the meaning of
B11 ^ P12 is derived from the meaning of B11 and P12
• + Meaning of propositional logic is context independent:
(unlike natural language, where the meaning depends
on the context)

• - Propositional logic has very limited expressive power:


(unlike natural language)
– E.g. cannot say Pits cause Breezes in adjacent squares except
by writing one sentence for each square
38
Pros of First-Order Logic
• First-Order Logic assumes that the world
contains:
– Objects
• E.g. people, houses, numbers, theories, colors, football
games, wars, centuries, …
– Relations
• E.g. red, round, prime, bogus, multistoried, brother of,
bigger than, inside, part of, has color, occurred after, owns,
comes between, …
– Functions
• E.g. father of, best friend, third quarter of, one more than,
beginning of, …

39
Logics in General
Language Ontological Epistemological
Commitment Commitment
Propositional Logic Facts True / False /
Unknown
First-Order Logic Fact, objects, relations True / False /
Unknown
Temporal Logic Facts, objects, True / False /
relations, times Unknown
Probability Theory Facts Degree of belief 
[0,1]
Fuzzy Logic Degree of truth  Known interval value
[0,1]
40
Syntax of First-Order Logic
• Constants KingJohn, 2, …
• Predicates Brother, >, …
• Functions Sqrt, LeftArmOf, …
• Variables x, y, a, b, …
• Connectives ¬
• Equality =
• Quantifiers 

41
Components of First-Order Logic
• Term
– Constant, e.g. Red
– Function of constant, e.g. Color(Block1)

• Atomic Sentence
– Predicate relating objects (no variable)
• Brother (John, Richard)
• Married (Mother(John), Father(John))

• Complex Sentences
– Atomic sentences + logical connectives
• Brother (John, Richard) Brother (John, Father(John))
42
Components of First-Order Logic
• Quantifiers
– Each quantifier defines a variable for the duration of
the following expression, and indicates the truth of
the expression…

• Universal quantifier “for all” 


– The expression is true for every possible value of the
variable

• Existential quantifier “there exists” 


– The expression is true for at least one value of the
variable
43
Truth in First-Order Logic
• Sentences are true with respect to a model and an
interpretation
• Model contains >= 1 object (domain elements) and
relations among them
• Interpretation specifies referents for
– constant symbols -> objects
– predicate symbols -> relations
– function symbols -> functional relations

• An atomic sentence predicate( term1,…,termn) is true iff


the objects referred to by term1,…,termn are in the
relation referred to by predicate
44
First-Order Logic Example

45
Universal Quantification
  <variables> <sentence>
 x P is true in a model m iff P with x being
each possible object in the model

• Equivalent to the conjunction of instantiations of


P
– At(Mike, KSU)  Smart(Mike) 
– At(Laurie, KSU)  Smart(Laurie) 
– At(Sarah, KSU)  Smart(Sarah) 
– …

46
A Common Mistake to Avoid
• Typically  is the main connective with 

• Common mistake: using  as the main


connective with 

 x At(x, KSU)  Smart(x)

47
Existential Quantification
  <variables> <sentence>
  x P is true in a model m iff P with x being at
least one possible object in the model

• Equivalent to the disjunction of instantiations of


P
– At(Mike, KSU)  Smart(Mike) 
– At(Laurie, KSU)  Smart(Laurie) 
– At(Sarah, KSU)  Smart(Sarah) 
– …

48
Another Common Mistake to Avoid
• Typically,  is the main connective with 

• Common mistake: using  as the main


connective with 

  x At(x, KSU)  Smart(x)

49
Examples
• Everyone likes McDonalds
 x, likes(x, McDonalds)

• Someone likes McDonalds


 x, likes(x, McDonalds)

• All children like McDonalds


 x, child(x)  likes(x, McDonalds)

• Everyone likes McDonalds unless they are allergic to it


 x, likes(x, McDonalds)  allergic(x, McDonalds)
 x, allergic (x, McDonalds)  likes(x, McDonalds)
50
Properties of Quantifiers
 x y is the same as y x
 x y is the same as y x
 x y is not the same as y x
 x y Loves(x, y)
• “There is a person who loves everyone in the
world”
 y x Loves(x, y)
• “Everyone in the world is loved by at least one
person”
51
Nesting Quantifiers
• Everyone likes some kind of food
y x, food(x)  likes(y, x)
• There is a kind of food that everyone likes
x y, food(x)  likes(y, x)
• Someone likes all kinds of food
y x, food(x)  likes(y, x)
• Every food has someone who likes it
x y, food(x)  likes(y, x)
52
Examples
• Quantifier Duality
– Not everyone like McDonalds
(x, likes(x, McDonalds))
x, likes(x, McDonalds)

– No one likes McDonalds


(x, likes(x, McDonalds))
x, likes(x, McDonalds)

53
Fun with Sentences
• Brothers are siblings
x,y Brother(x,y)  Sibling(x, y)

• Sibling is “symmetric”
x,y Sibling(x,y)  Sibling(y, x)

54
Fun with Sentences
• One’s mother is one’s female parent
x,y Mother(x,y)  (Female(x)  Parent(x,y))

• A first cousin is a child of a parent’s sibling


x,y FirstCousin(x,y)  p,ps Parent(p,x) 
Sibling(ps,p)  (Parent(ps,y)

55
Other Comments About
Quantification
• To say “everyone likes McDonalds”, the following is too
broad!
 x, likes(x, McDonalds)
– Rush’s example: likes (McDonalds, McDonalds)

• We mean: Every one (who is a human) likes McDonalds


 x, person(x)  likes(x, McDonalds)

• Essentially, the left side of the rule declares the class of


the variable x

• Constraints like this are often called “domain constraints”


56
Equality
• We allow the usual infix = operator
– Father(John) = Henry
 x, sibling(x, y)  (x=y)

• Generally, we also allow mathematical


operations when needed, e.g.
 x,y, NatNum(x)  NatNum(y) x = (y+1)  x > y

• Example: (Sibling in terms of Parent)


x,y Sibling(x,y)  [¬(x=y)  m,f ¬(m=f) 
Parent(m,x)  Parent(f,x)  Parent(m,y)  Parent
(f,y)]
57
Example Domains
• Kinship domain
– What is a second cousin once removed, anyway?
• Numbers, sets, and lists
– This one is a classic. You should understand these, even if you
don’t memorize them.
• The Wumpus World
– Note how much simpler the description is in FOL!
• “Whatever your domain, if the axioms correctly and
completely describe how the world works, any complete
logical inference procedure will infer the strongest
possible description of the world, given the available
percepts” (AIMA, p. 260)

58
Interacting with FOL KBs
• Tell the system assertions
– Facts :
• Tell (KB, person (John) )
– Rules:
• Tell (KB,x, person(x)  likes(x, McDonalds))
• Ask questions
– Ask (KB, person(John))
– Ask (KB, likes(John, McDonalds))
– Ask (KB, likes(x, McDonalds))

59
Types of Answers
• Fact is in the KB
– Yes.
• Fact is not in the KB
– Yes (if it can be proven from the KB)
– No (otherwise)
• Fact contains variables
– List of bindings for which the fact can be
proven, e.g. ((x Fred) (x Mary) … )

60
Interacting with FOL KBs
• Suppose a wumpus-world agent is using a FOL
KB and perceive a smell and breeze (but no
glitter) at t=5

• TELL(KB, Percept([Smell, Breeze, None],5))


• ASK(KB, a Action(a, 5))
– i.e. does the KB entail any particular action at t=5?

• Answer: Yes, {a/Shoot} <- substitution


(binding list)
61
Interacting with FOL KBs
• Given a Sentence S and a substitution ,

• Ss denotes the result of plugging  in to S;

• Example:
– S = Taller( x, y )
–  = {x/Mike, y/Laurie}
– S = Taller( Mike, Laurie )

• ASK(KB,S) returns some/all  such that KB |=S


62
Knowledge Base for Wumpus World
• “Perception”
 b, g, t Percept([Smell, b, g], t)  Smelt(t)
 s, b, t Percept([s, b, Glitter], t)  AtGold(t)

• “Reflex”
  t AtGold(t)  Action(Grab, t)
• “Reflex with internal state”
  t AtGold(t)  ¬Holding(Gold, t)  Action(Grab, t)

• Holding( Gold, t ) cannot be observed


– Keeping track of change is essential!!!!
63
Deducing Hidden Properties
• Properties of locations:
x, t At(Agent, x, t)  Smelt(t)  Smelly(t)
x, t At(Agent, x, t)  Breeze(t)  Breezy(t)

• Squares are breezy near a pit:


– Diagnostic Rule – infer cause from effect
 y Breezy(y)  x Pit(x)  Adjacent( x, y )
– Causal Rule – infer effect from cause
 x,y Pit(x)  Adjacent(x,y)  Breezy(x,y)

• Neither is complete
– E.g. the causal rule doesn’t say whether squares far away from
pits can be breezy
64
Deducing Hidden Properties
• Definition for the Breezy predicate:
– If a square is breezy, some adjacent square must
contain a pit
 y Breezy(y)  x Pit(x)  Adjacent( x, y )

– If a square is not breezy, no adjacent pit contains a


pit
 y ¬Breezy(y)  ¬x Pit(x)  Adjacent( x, y )

– Combining these two…


 y Breezy(y)  x Pit(x)  Adjacent( x, y )

65
Keeping Track of Change
• Often, facts hold in situations, rather than
eternally
– E.g. Holding( Gold, now ) rather than just
Holding( Gold )
• Situation calculus is one way to represent
change in FOL:
– Adds a situation argument to each non-
eternal predicate
• E.g. Now in Holding(Gold, Now) denotes a
situation
66
Keeping Track of Change
• Situations are
connected by the
Result function
Result( a, s ) is the
situation that results
from doing a in s

67
Describing Actions
• “Effect” axiom – describe changes due to
action
• “Frame” axiom – describe non-changes
due to action
• Frame problem:
– Find an elegant way to handle non-change
• (A) representation – avoid frame axioms
• (B) inference – avoid repeated “copy-overs” to
keep track of state
68
Describing Actions
• “Effect” axiom – describe changes due to
action
• “Frame” axiom – describe non-changes
due to action
• Frame problem:
– Find an elegant way to handle non-change
• (A) representation – avoid frame axioms
• (B) inference – avoid repeated “copy-overs” to
keep track of state
69
Describing Actions
• Qualification Problem:
– True descriptions of real actions require
endless caveats…
• “What if the gold is slippery or nailed down or…”

• Ramification Problem:
– Real actions have many secondary
consequences…
• “What about the dust on the gold, wear and tear
on gloves,…”

70
Describing Actions
• Successor-state axioms solve the
representational frame problem

• Each axiom is “about” a predicate (not an action


per se)
– P true afterwards  [ an action made P true  P true
and no action made P false]

• Example: Holding the Gold:


a,s Holding(Gold, Result(a,s))  [(a = Grab 
AtGold(s))  (Holding(Gold,s)  a ≠ Release)]

71
Making Plans
• Initial condition in KB:
– At( Agent, [1,1], S0 )
– At( Gold, [1,2], S0 )

• Query:
– ASK( KB, s Holding( Gold, s ))
• i.e. in what situation will I be holding the gold?

• Answer:
– {s / Result(Grab , Result(Forward, S0))}
• i.e. go forward and then grab the gold
– This assumes that the agent is interested in plans starting at S0
and that S0 is the only situation described in the KB
72
Making Plans
• A better way to make plans is to represent plans
as a sequence of actions [a1, a2, …, an]

• PlanResult( p, s ) is the result of executing p in s

• Then the query


– ASK( KB, p Holding(Gold, PlanResult(p, S0)))
– has the solution {p / [Forward, Grab]}

73
Making Plans
• Definition of PlanResult in terms of Result:
 s PlanResult([], s) = s
 a,p,s PlanResult([a|p],s) = PlanResult(p,
Result(a,s))

• Planning systems are special-purpose


reasoners designed to do this type of
inference more efficiently than a general
purpose reasoner
74

You might also like