Next Week's Homework
Read Loaden through 12.4 OR Read Tucker + Noonan through 9.5.3 except 9.4
Install gPrologue
Review of Propositional Logic's Structure:
Statements are simple combinations of variables and operators.
- AND : ^ OR : \vee NOT : ¬
Implies : =>
p: it is raining
Predicate Logic
Statements are made from operators and Predicates that have arguments.
raining(10:20am, Needham) <- Raining is a predicate, 10:20am and Needham are arguments
raining(10:21am, Needham) <- Put together, they make an assertion.
sad_students(FOCS)
First Order Predicate Calculus(FOPC or FOL)
Only quantifies over the arguments, not over the predicates.
\forall t raining(t,loc) => raining(t+1,loc) <- Rule
course(FOCS,ENGR3520,TuesFri,10,12,Stein) <- Predicate with 6 args
Ex 1
\forall CN1 , CN2 course( _ , CN1 ,date,tstart, tend, _ , R1 )
course( _ , CN2 ,date,tstart,tend, _ , R2 )
=> CN1 = CN2 OR R1 \neq R2
Ex 2
course(C)
roomof(C,318) <- Accessors for object
nameof(C,FOCS)
etc...
\forall C1 ,C2 course( C1 ) , course( C2 )
roomof( C1 ,R1 ) , roomof( C2,R1 )
starttime( C1 ,t1 ) , starttime( C2,t1 ) <- Related but not function
=> C1=C2
starttime( C1y ) = starttime( C2) <- Function returning value
Ex 4: RDF
<description about=FOCS>
<course-name> Foundations of Computer Science</course-name>
<course-instructor> LAS </course-instructor>
</description>
Ex 5
<class about="prof">
<rdf:subclassOf> http://location of def of person</rdf:subclassOf>
</class>
All of this means: \forall x prof (x) => person (x)