Answers.Body: <p>(1) can be paraphrased as &quot;There exists an <em>x</em>, and for any <em>t</em> if <em>x</em> is a person and <em>t</em> is a time, then <em>x</em> can be fooled at time <em>t</em>&quot; (I would use <em>fool-able</em> instead of <em>can-fool</em>, as it is closer to the intended meaning).</p>
  <p>(2) would be &quot;There exists an <em>x</em>, and for any <em>t</em>, you can fool <em>x</em> is a person and <em>t</em> is a time.&quot;</p>
  <p>They are not equivalent: <em>person(x)</em>  and <em>time(t)</em> are boolean predicates, which return a truth value: they are true if <em>x</em> is a person, and <em>t</em> is a time, respectively. So in (1) they act as a constraint on the values that <em>x</em> and <em>t</em> can take. If <em>x</em> was a saucepan, then <em>person(x)</em> would be false, and thus you wouldn't be able to claim that you can fool a saucepan.</p>
  <p>So <em>can-fool</em> takes two arguments: one for which <em>person</em> is true, and one for which <em>time</em> is true. But in (2), the arguments are actually the boolean truth values: if <em>x</em> was &quot;Falstaff&quot; and <em>t</em> was &quot;yesterday&quot;, then in (1) the premise would be true, as <em>person(&quot;Falstaff&quot;)</em> and <em>time(&quot;yesterday&quot;)</em> are true, and so you conclude <em>can-fool(&quot;Falstaff&quot;, &quot;yesterday&quot;)</em>.</p>
  <p>In (2) that becomes <em>can-fool(person(&quot;Falstaff&quot;), time(&quot;yesterday&quot;))</em>, which evaluates to <em>can-fool(true, true)</em>, and that won't work.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-03-27T11:13:10.730Z
Answers.LastActivityDate: 2021-03-27T11:13:10.730Z
Answers.UserDisplayName: Oliver Mason
Body: <blockquote>
  <p>You can fool some of the people all of the time.</p>
  </blockquote>
  <p>This can be represented in FOL as follows</p>
  <p><span class="math-container">$$\exists x \; \forall t  \; (\text{person}(x) \land \text{time}(t)) \Rightarrow \text{can-fool}(x,t) \tag{1}\label{1}$$</span></p>
  <p>Is <span class="math-container">$\exists x \; \forall t \; \text{can-fool}(\text{person}(x), \text{time}(t))$</span> equivalent to (\ref{1}) ?</p>
  
Tags: <logic><symbolic-ai>
Title: Do these FOL formula both represent "You can fool some of the people all of the time"?
UserDisplayName: Vignesh Kumar
ThreadText: # Do these FOL formula both represent "You can fool some of the people all of the time"?
  
  (Asked by: username_0 on 2021-03-27)
  
  > You can fool some of the people all of the time.
  
  This can be represented in FOL as follows
  
  $$\exists x \; \forall t \; (\text{person}(x) \land \text{time}(t)) \Rightarrow \text{can-fool}(x,t) \tag{1}\label{1}$$
  
  Is $\exists x \; \forall t \; \text{can-fool}(\text{person}(x), \text{time}(t))$ equivalent to (\ref{1}) ?
  
  **Tags:** logic, symbolic-ai
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2021-03-27. Score: 1 | Accepted answer
  
  (1) can be paraphrased as "There exists an *x*, and for any *t* if *x* is a person and *t* is a time, then *x* can be fooled at time *t*" (I would use *fool-able* instead of *can-fool*, as it is closer to the intended meaning).
  
  (2) would be "There exists an *x*, and for any *t*, you can fool *x* is a person and *t* is a time."
  
  They are not equivalent: *person(x)* and *time(t)* are boolean predicates, which return a truth value: they are true if *x* is a person, and *t* is a time, respectively. So in (1) they act as a constraint on the values that *x* and *t* can take. If *x* was a saucepan, then *person(x)* would be false, and thus you wouldn't be able to claim that you can fool a saucepan.
  
  So *can-fool* takes two arguments: one for which *person* is true, and one for which *time* is true. But in (2), the arguments are actually the boolean truth values: if *x* was "Falstaff" and *t* was "yesterday", then in (1) the premise would be true, as *person("Falstaff")* and *time("yesterday")* are true, and so you conclude *can-fool("Falstaff", "yesterday")*.
  
  In (2) that becomes *can-fool(person("Falstaff"), time("yesterday"))*, which evaluates to *can-fool(true, true)*, and that won't work.
  
  
  ---
  
  