Advertisement
Guest User

HW17.2

a guest
Feb 18th, 2020
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.55 KB | None | 0 0
  1. CalcCheckWeb — Homework Notebook 17.2: Relations via Set Theory: Properties of Relations
  2. Your latest 3 submissions:
  3. salehh6__Hishmat+Salehi__2019-11-18_23:17:10.827571_EST.calcnb
  4. salehh6__Hishmat+Salehi__2019-11-18_23:36:14.237315_EST.calcnb
  5. salehh6__Hishmat+Salehi__2019-11-18_23:54:38.609777_EST.calcnb
  6. [1]
  7. Building on the relation operations and properties from Homeworks 15, 16, and 17.1, this notebook explores properties of relation.
  8.  
  9. Several proofs here require you to just replace “?₁” with a single hint item; in those cases you are not allowed to edit the proof in any other way.
  10.  
  11. [2]
  12. Reflexivity
  13. [3]
  14. We define the reflexivity predicate for relations using the predicate-logic formulation:
  15.  
  16. [4]
  17. Declaration: is-reflexive : A ↔ A → 𝔹
  18. Axiom “Definition of reflexivity”: is-reflexive R ≡ ∀ x • x ⦗ R ⦘ x
  19.  
  20. Declaration: is-reflexive : A ↔ A → 𝔹
  21. Axiom “Definition of reflexivity”: is-reflexive R ≡ (∀ x • x ⦗ R ⦘ x )
  22. — CalcCheck: Metavariables: R = R〖 〗
  23. — CalcCheck: Proviso: ¬occurs(`x`, `R`)
  24. [5]
  25. Proving a goal of shape “is-reflexive R” using this axiom can just proceed via an equivalence calculation:
  26.  
  27. [6]
  28. Theorem “`Id` is reflexive”: is-reflexive Id
  29. Proof:
  30. is-reflexive Id
  31. ≡⟨ “Definition of reflexivity” ⟩
  32. ∀ x • x ⦗ Id ⦘ x
  33. ≡⟨ Subproof:
  34. For any `x`:
  35. x ⦗ Id ⦘ x
  36. ≡⟨ “Identity relation” ⟩
  37. x = x — This is 【 “Reflexivity of =” 】
  38. true
  39.  
  40. Theorem “`Id` is reflexive”: is-reflexive Id
  41. Proof:
  42. Proving `is-reflexive Id`:
  43. is-reflexive Id
  44. ≡ ⟨ “Definition of reflexivity” ⟩
  45. — CalcCheck: Found “Definition of reflexivity”
  46. — CalcCheck: ─ OK
  47. (∀ x • x ⦗ Id ⦘ x )
  48. ≡ ⟨ Subproof for `(∀ x • x ⦗ Id ⦘ x )`:
  49. For any ` x`:
  50. Proving `x ⦗ Id ⦘ x`:
  51. x ⦗ Id ⦘ x
  52. ≡ ⟨ “Identity relation” ⟩
  53. — CalcCheck: Found “Identity relation”
  54. — CalcCheck: ─ OK
  55. x = x — This is 【 “Reflexivity of =” 】
  56. — CalcCheck: Final “This is”: OK (no change)
  57. — CalcCheck: Found (1.2) “Reflexivity of =”
  58. — CalcCheck: All steps OK
  59. — CalcCheck: Calculation matches goal ─ OK
  60. — CalcCheck: ─ OK
  61. true
  62. — CalcCheck: All steps OK
  63. — CalcCheck: Calculation matches goal ─ OK
  64. [7]
  65. This has the disadvantage that it produces after the first calculation step a universal quantification that, in the current setting, is most naturally approached via a “For any” proof either in a “Proof for this” construct or inside a Subproof hint which contains the whole remainder of the proof. In either case, that the initial calculation only really has one nice calculation step.
  66.  
  67. Such proofs can be presented more nicely via Using:
  68.  
  69. [8]
  70. Theorem “`Id` is reflexive”: is-reflexive Id
  71. Proof:
  72. Using “Definition of reflexivity”:
  73. Subproof for `∀ x • x ⦗ Id ⦘ x`:
  74. For any `x`:
  75. x ⦗ Id ⦘ x
  76. ≡⟨ “Identity relation” ⟩
  77. x = x — This is “Reflexivity of =”
  78.  
  79. Theorem “`Id` is reflexive”: is-reflexive Id
  80. Proof:
  81. Using “Definition of reflexivity”:
  82. Subproof for `(∀ x • x ⦗ Id ⦘ x )`:
  83. For any ` x`:
  84. Proving `x ⦗ Id ⦘ x`:
  85. x ⦗ Id ⦘ x
  86. ≡ ⟨ “Identity relation” ⟩
  87. — CalcCheck: Found “Identity relation”
  88. — CalcCheck: ─ OK
  89. x = x — This is “Reflexivity of =”
  90. — CalcCheck: Final “This is”: OK (no change)
  91. — CalcCheck: Found (1.2) “Reflexivity of =”
  92. — CalcCheck: All steps OK
  93. — CalcCheck: Calculation matches goal ─ OK
  94. — CalcCheck: Found “Definition of reflexivity”
  95. [9]
  96. Where the proof inside a Subproof is of a shape for which CalcCheck can infer the goal, the subproof goal (after “for”) can be omitted:
  97.  
  98. [10]
  99. Theorem “`Id` is reflexive”: is-reflexive Id
  100. Proof:
  101. Using “Definition of reflexivity”:
  102. Subproof:
  103. For any `x`:
  104. x ⦗ Id ⦘ x
  105. ≡⟨ “Identity relation” ⟩
  106. x = x — This is “Reflexivity of =”
  107.  
  108. Theorem “`Id` is reflexive”: is-reflexive Id
  109. Proof:
  110. Using “Definition of reflexivity”:
  111. Subproof for `(∀ x • x ⦗ Id ⦘ x )`:
  112. For any ` x`:
  113. Proving `x ⦗ Id ⦘ x`:
  114. x ⦗ Id ⦘ x
  115. ≡ ⟨ “Identity relation” ⟩
  116. — CalcCheck: Found “Identity relation”
  117. — CalcCheck: ─ OK
  118. x = x — This is “Reflexivity of =”
  119. — CalcCheck: Final “This is”: OK (no change)
  120. — CalcCheck: Found (1.2) “Reflexivity of =”
  121. — CalcCheck: All steps OK
  122. — CalcCheck: Calculation matches goal ─ OK
  123. — CalcCheck: Found “Definition of reflexivity”
  124. [11]
  125. And where a Using takes only one subproof, and that subproof does not need its goal explicit, the whole subproof line can be omitted:
  126.  
  127. [12]
  128. Theorem “`Id` is reflexive”: is-reflexive Id
  129. Proof:
  130. Using “Definition of reflexivity”:
  131. For any `x`:
  132. x ⦗ Id ⦘ x
  133. ≡⟨ “Identity relation” ⟩
  134. x = x — This is “Reflexivity of =”
  135.  
  136. Theorem “`Id` is reflexive”: is-reflexive Id
  137. Proof:
  138. Using “Definition of reflexivity”:
  139. Subproof for `(∀ x • x ⦗ Id ⦘ x )`:
  140. For any ` x`:
  141. Proving `x ⦗ Id ⦘ x`:
  142. x ⦗ Id ⦘ x
  143. ≡ ⟨ “Identity relation” ⟩
  144. — CalcCheck: Found “Identity relation”
  145. — CalcCheck: ─ OK
  146. x = x — This is “Reflexivity of =”
  147. — CalcCheck: Final “This is”: OK (no change)
  148. — CalcCheck: Found (1.2) “Reflexivity of =”
  149. — CalcCheck: All steps OK
  150. — CalcCheck: Calculation matches goal ─ OK
  151. — CalcCheck: Found “Definition of reflexivity”
  152. [13]
  153. However, remember that where an attempt to do such a proof does not succeed, you can always revert to the explicit calculation with the “For any” inside a Subproof!
  154.  
  155. And, when in doubt, always make subproof goals explicit.
  156.  
  157. [14]
  158. Deriving the relation-algebraic formulation of reflexivity can be done in a straight-forward equivalence calculation — start from the right:
  159.  
  160. [15]
  161. Theorem “Reflexivity”: is-reflexive R ≡ Id ⊆ R
  162. Proof:
  163. Id ⊆ R
  164. ≡⟨ “Relation inclusion” ⟩
  165. ∀ x • ∀ y • x ⦗ Id ⦘ y ⇒ x ⦗ R ⦘ y
  166. ≡⟨ “Identity relation” ⟩
  167. ∀ x • ∀ y • x = y ⇒ x ⦗ R ⦘ y
  168. ≡⟨ “Trading for ∀” ⟩
  169. ∀ x • ∀ y ❙ x = y • x ⦗ R ⦘ y
  170. ≡⟨ “One-point rule for ∀” ⟩
  171. ∀ x • (x ⦗ R ⦘ y)[y ≔ x]
  172. ≡⟨ Substitution ⟩
  173. ∀ x • x ⦗ R ⦘ x
  174. ≡⟨ “Definition of reflexivity” ⟩
  175. is-reflexive R
  176.  
  177. Theorem “Reflexivity”: is-reflexive R ≡ Id ⊆ R
  178. Proof:
  179. Proving `is-reflexive R ≡ Id ⊆ R`:
  180. Id ⊆ R
  181. ≡ ⟨ “Relation inclusion” ⟩
  182. — CalcCheck: Found “Relation inclusion”, “Relation inclusion”
  183. — CalcCheck: ─ OK
  184. (∀ x • (∀ y • x ⦗ Id ⦘ y ⇒ x ⦗ R ⦘ y ) )
  185. ≡ ⟨ “Identity relation” ⟩
  186. — CalcCheck: Found “Identity relation”
  187. — CalcCheck: ─ OK
  188. (∀ x • (∀ y • x = y ⇒ x ⦗ R ⦘ y ) )
  189. ≡ ⟨ “Trading for ∀” ⟩
  190. — CalcCheck: Found (9.2) “Trading for ∀”, (9.3a) “Trading for ∀”, (9.3b) “Trading for ∀”, (9.3c) “Trading for ∀”, (9.4a) “Trading for ∀”, (9.4b) “Trading for ∀”, (9.4c) “Trading for ∀”, (9.4d) “Trading for ∀”
  191. — CalcCheck: ─ OK
  192. (∀ x • (∀ y ❙ x = y • x ⦗ R ⦘ y ) )
  193. ≡ ⟨ “One-point rule for ∀” ⟩
  194. — CalcCheck: Found (8.14) “One-point rule for ∀”
  195. — CalcCheck: ─ OK
  196. (∀ x • (x ⦗ R ⦘ y)[y ≔ x] )
  197. ≡ ⟨ Substitution ⟩
  198. — CalcCheck: ─ OK
  199. (∀ x • x ⦗ R ⦘ x )
  200. ≡ ⟨ “Definition of reflexivity” ⟩
  201. — CalcCheck: Found “Definition of reflexivity”
  202. — CalcCheck: ─ OK
  203. is-reflexive R
  204. — CalcCheck: All steps OK
  205. — CalcCheck: Calculation matches goal ─ OK
  206. [16]
  207. The composition of two reflexive relations is reflexive again — if you start just with “Assuming `is-reflexive R`”, you will need to use this assumption later via
  208.  
  209. Assumption `is-reflexive R` with “Definition of reflexivity”
  210. which gives you “∀ x • x ⦗ R ⦘ x” (which at that time you will apply via implicit instantiation of x to some local variable).
  211.  
  212. [17]
  213. Theorem “Composition of reflexive relations”:
  214. is-reflexive R ⇒ is-reflexive S ⇒ is-reflexive (R ⨾ S)
  215. Proof:
  216. Assuming `is-reflexive R`:
  217. Assuming `is-reflexive S`:
  218. Using “Definition of reflexivity”:
  219. For any `x`:
  220. x ⦗ R ⨾ S ⦘ x
  221. ≡⟨ “Relation composition” ⟩
  222. ∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x
  223. ⇐⟨ “∃-Introduction” ⟩
  224. (x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x)[b ≔ x]
  225. ≡⟨ Substitution ⟩
  226. (x ⦗ R ⦘ x ∧ x ⦗ S ⦘ x)
  227. ≡⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  228. (true ∧ x ⦗ S ⦘ x)
  229. ≡⟨ Assumption `is-reflexive S` with “Definition of reflexivity” ⟩
  230. (true ∧ true)
  231. ≡⟨ “Idempotency of ∧” ⟩
  232. true
  233.  
  234. Theorem “Composition of reflexive relations”: is-reflexive R ⇒ (is-reflexive S ⇒ is-reflexive (R ⨾ S))
  235. Proof:
  236. Assuming `is-reflexive R`:
  237. — CalcCheck: Assumption matches goal
  238. Assuming `is-reflexive S`:
  239. — CalcCheck: Assumption matches goal
  240. Using “Definition of reflexivity”:
  241. Subproof for `(∀ x • x ⦗ R ⨾ S ⦘ x ⇐ true )`:
  242. For any ` x`:
  243. Proving `x ⦗ R ⨾ S ⦘ x ⇐ true`:
  244. x ⦗ R ⨾ S ⦘ x
  245. ≡ ⟨ “Relation composition” ⟩
  246. — CalcCheck: Found “Relation composition”
  247. — CalcCheck: ─ OK
  248. (∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x )
  249. ⇐ ⟨ “∃-Introduction” ⟩
  250. — CalcCheck: Found (9.28) “∃-Introduction”
  251. — CalcCheck: ─ OK
  252. (x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x)[b ≔ x]
  253. ≡ ⟨ Substitution ⟩
  254. — CalcCheck: ─ OK
  255. x ⦗ R ⦘ x ∧ x ⦗ S ⦘ x
  256. ≡ ⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  257. — CalcCheck: Found “Definition of reflexivity”
  258. — CalcCheck: Found assumption `is-reflexive R`
  259. — CalcCheck: ─ OK
  260. true ∧ x ⦗ S ⦘ x
  261. ≡ ⟨ Assumption `is-reflexive S` with “Definition of reflexivity” ⟩
  262. — CalcCheck: Found “Definition of reflexivity”
  263. — CalcCheck: Found assumption `is-reflexive S`
  264. — CalcCheck: ─ OK
  265. true ∧ true
  266. ≡ ⟨ “Idempotency of ∧” ⟩
  267. — CalcCheck: Found (3.38) “Idempotency of ∧”
  268. — CalcCheck: ─ OK
  269. true
  270. — CalcCheck: All steps OK
  271. — CalcCheck: Calculation matches goal ─ OK
  272. — CalcCheck: Found “Definition of reflexivity”
  273. [18]
  274. Especially in cases where such assumptions are used more than once, the “Assuming `...` and using with ...” syntax is useful — in the same proof as above, you now only need to refer to “Assumption `is-reflexive R`”:
  275.  
  276. [19]
  277. Theorem “Composition of reflexive relations”:
  278. is-reflexive R ⇒ is-reflexive S ⇒ is-reflexive (R ⨾ S)
  279. Proof:
  280. Assuming `is-reflexive R` and using with “Definition of reflexivity”:
  281. is-reflexive S ⇒ is-reflexive (R ⨾ S)
  282. ≡⟨ “Definition of reflexivity” ⟩
  283. is-reflexive S ⇒ ∀ x • x ⦗ R ⨾ S ⦘ x
  284. ≡⟨ “Distributivity of ⇒ over ∀” ⟩
  285. ∀ x • is-reflexive S ⇒ x ⦗ R ⨾ S ⦘ x
  286. ≡⟨ “Definition of reflexivity” ⟩
  287. ∀ x • (∀ y • y ⦗ S ⦘ y) ⇒ x ⦗ R ⨾ S ⦘ x
  288. ≡⟨ “Relation composition” ⟩
  289. ∀ x • (∀ y • y ⦗ S ⦘ y) ⇒ ∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x
  290. ≡⟨ Subproof:
  291. For any `x`:
  292. Assuming `∀ y • y ⦗ S ⦘ y`:
  293. ∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x
  294. ⇐⟨ “∃-Introduction” ⟩
  295. (x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x)[b ≔ x]
  296. ≡⟨ Substitution ⟩
  297. (x ⦗ R ⦘ x ∧ x ⦗ S ⦘ x)
  298. ≡⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  299. true ∧ x ⦗ S ⦘ x
  300. ≡⟨ Assumption `∀ y • y ⦗ S ⦘ y` ⟩
  301. true ∧ true
  302. ≡⟨ “Idempotency of ∧” ⟩
  303. true
  304. true
  305.  
  306. Theorem “Composition of reflexive relations”: is-reflexive R ⇒ (is-reflexive S ⇒ is-reflexive (R ⨾ S))
  307. Proof:
  308. Assuming `is-reflexive R` and using with “Definition of reflexivity”
  309. — CalcCheck: Found “Definition of reflexivity”:
  310. — CalcCheck: Assumption matches goal
  311. Proving `is-reflexive S ⇒ is-reflexive (R ⨾ S)`:
  312. is-reflexive S ⇒ is-reflexive (R ⨾ S)
  313. ≡ ⟨ “Definition of reflexivity” ⟩
  314. — CalcCheck: Found “Definition of reflexivity”
  315. — CalcCheck: ─ OK
  316. is-reflexive S ⇒ (∀ x • x ⦗ R ⨾ S ⦘ x )
  317. ≡ ⟨ “Distributivity of ⇒ over ∀” ⟩
  318. — CalcCheck: Found “Distributivity of ⇒ over ∀”
  319. — CalcCheck: ─ OK
  320. (∀ x • is-reflexive S ⇒ x ⦗ R ⨾ S ⦘ x )
  321. ≡ ⟨ “Definition of reflexivity” ⟩
  322. — CalcCheck: Found “Definition of reflexivity”
  323. — CalcCheck: ─ OK
  324. (∀ x • (∀ y • y ⦗ S ⦘ y ) ⇒ x ⦗ R ⨾ S ⦘ x )
  325. ≡ ⟨ “Relation composition” ⟩
  326. — CalcCheck: Found “Relation composition”
  327. — CalcCheck: ─ OK
  328. (∀ x • (∀ y • y ⦗ S ⦘ y ) ⇒ (∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x ) )
  329. ≡ ⟨ Subproof for `(∀ x • (∀ y • y ⦗ S ⦘ y ) ⇒ (∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x ) )`:
  330. For any ` x`:
  331. Assuming `(∀ y • y ⦗ S ⦘ y )`:
  332. — CalcCheck: Assumption matches goal
  333. Proving `(∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x )`:
  334. (∃ b • x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x )
  335. ⇐ ⟨ “∃-Introduction” ⟩
  336. — CalcCheck: Found (9.28) “∃-Introduction”
  337. — CalcCheck: ─ OK
  338. (x ⦗ R ⦘ b ∧ b ⦗ S ⦘ x)[b ≔ x]
  339. ≡ ⟨ Substitution ⟩
  340. — CalcCheck: ─ OK
  341. x ⦗ R ⦘ x ∧ x ⦗ S ⦘ x
  342. ≡ ⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  343. — CalcCheck: Found “Definition of reflexivity”
  344. — CalcCheck: Found assumption `is-reflexive R`
  345. — CalcCheck: ─ OK
  346. true ∧ x ⦗ S ⦘ x
  347. ≡ ⟨ Assumption `(∀ y • y ⦗ S ⦘ y )` ⟩
  348. — CalcCheck: Found assumption `(∀ y • y ⦗ S ⦘ y )`
  349. — CalcCheck: ─ OK
  350. true ∧ true
  351. ≡ ⟨ “Idempotency of ∧” ⟩
  352. — CalcCheck: Found (3.38) “Idempotency of ∧”
  353. — CalcCheck: ─ OK
  354. true
  355. — CalcCheck: All steps OK
  356. — CalcCheck: Calculation matches goal ─ OK
  357. — CalcCheck: ─ OK
  358. true
  359. — CalcCheck: All steps OK
  360. — CalcCheck: Calculation matches goal ─ OK
  361. [20]
  362. The same proof structure can be used to show that converse preserves reflexivity:
  363.  
  364. [21]
  365. Theorem “Converse of reflexive relations”:
  366. is-reflexive R ⇒ is-reflexive (R ˘)
  367. Proof:
  368. Assuming `is-reflexive R` and using with “Definition of reflexivity”:
  369. is-reflexive (R ˘)
  370. ≡⟨ “Definition of reflexivity” ⟩
  371. ∀ x • x ⦗ R ˘ ⦘ x
  372. ≡⟨ “Relation converse” ⟩
  373. ∀ x • x ⦗ R ⦘ x
  374. ≡⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  375. ∀ x • true
  376. ≡⟨ “True ∀ body” ⟩
  377. true
  378.  
  379. Theorem “Converse of reflexive relations”: is-reflexive R ⇒ is-reflexive (R ˘)
  380. Proof:
  381. Assuming `is-reflexive R` and using with “Definition of reflexivity”
  382. — CalcCheck: Found “Definition of reflexivity”:
  383. — CalcCheck: Assumption matches goal
  384. Proving `is-reflexive (R ˘)`:
  385. is-reflexive (R ˘)
  386. ≡ ⟨ “Definition of reflexivity” ⟩
  387. — CalcCheck: Found “Definition of reflexivity”
  388. — CalcCheck: ─ OK
  389. (∀ x • x ⦗ R ˘ ⦘ x )
  390. ≡ ⟨ “Relation converse” ⟩
  391. — CalcCheck: Found “Relation converse”
  392. — CalcCheck: ─ OK
  393. (∀ x • x ⦗ R ⦘ x )
  394. ≡ ⟨ Assumption `is-reflexive R` with “Definition of reflexivity” ⟩
  395. — CalcCheck: Found “Definition of reflexivity”
  396. — CalcCheck: Found assumption `is-reflexive R`
  397. — CalcCheck: ─ OK
  398. (∀ x • true )
  399. ≡ ⟨ “True ∀ body” ⟩
  400. — CalcCheck: Found (9.8) “True ∀ body”
  401. — CalcCheck: ─ OK
  402. true
  403. — CalcCheck: All steps OK
  404. — CalcCheck: Calculation matches goal ─ OK
  405. [22]
  406. That same proof structure could also be used to show that converse reflects reflexivity — but you also can prove this at a higher level if you remember that you proved
  407.  
  408. Theorem “Self-inverse of ˘”: R ˘ ˘ = R
  409. in Homework 16:
  410.  
  411. [23]
  412. Theorem “Converse reflects reflectivity”:
  413. is-reflexive (R ˘) ⇒ is-reflexive R
  414. Proof:
  415. Assuming `is-reflexive (R ˘)` and using with “Definition of reflexivity”:
  416. is-reflexive R
  417. ≡⟨ “Definition of reflexivity” ⟩
  418. ∀ x • x ⦗ R ⦘ x
  419. ≡⟨ “Relation converse” ⟩
  420. ∀ x • x ⦗ R ˘ ⦘ x
  421. ≡⟨ Assumption `is-reflexive (R ˘)` with “Definition of reflexivity” ⟩
  422. ∀ x • true
  423. ≡⟨ “True ∀ body” ⟩
  424. true
  425.  
  426. Theorem “Converse reflects reflectivity”: is-reflexive (R ˘) ⇒ is-reflexive R
  427. Proof:
  428. Assuming `is-reflexive (R ˘)` and using with “Definition of reflexivity”
  429. — CalcCheck: Found “Definition of reflexivity”:
  430. — CalcCheck: Assumption matches goal
  431. Proving `is-reflexive R`:
  432. is-reflexive R
  433. ≡ ⟨ “Definition of reflexivity” ⟩
  434. — CalcCheck: Found “Definition of reflexivity”
  435. — CalcCheck: ─ OK
  436. (∀ x • x ⦗ R ⦘ x )
  437. ≡ ⟨ “Relation converse” ⟩
  438. — CalcCheck: Found “Relation converse”
  439. — CalcCheck: ─ OK
  440. (∀ x • x ⦗ R ˘ ⦘ x )
  441. ≡ ⟨ Assumption `is-reflexive (R ˘)` with “Definition of reflexivity” ⟩
  442. — CalcCheck: Found “Definition of reflexivity”
  443. — CalcCheck: Found assumption `is-reflexive (R ˘)`
  444. — CalcCheck: ─ OK
  445. (∀ x • true )
  446. ≡ ⟨ “True ∀ body” ⟩
  447. — CalcCheck: Found (9.8) “True ∀ body”
  448. — CalcCheck: ─ OK
  449. true
  450. — CalcCheck: All steps OK
  451. — CalcCheck: Calculation matches goal ─ OK
  452. [24]
  453. Transitivity
  454. [25]
  455. We define the transitivity predicate for relations using the predicate-logic formulation:
  456.  
  457. [26]
  458. Declaration: is-transitive : A ↔ A → 𝔹
  459. Axiom “Definition of transitivity”: is-transitive R ≡ ∀ x • ∀ y • ∀ z •
  460. x ⦗ R ⦘ y ⦗ R ⦘ z ⇒ x ⦗ R ⦘ z
  461.  
  462. Declaration: is-transitive : A ↔ A → 𝔹
  463. Axiom “Definition of transitivity”: is-transitive R ≡ (∀ x • (∀ y • (∀ z • x ⦗ R ⦘ y ⦗ R ⦘ z ⇒ x ⦗ R ⦘ z ) ) )
  464. — CalcCheck: Metavariables: R = R〖 〗
  465. — CalcCheck: Proviso: ¬occurs(`x, y, z`, `R`)
  466. [27]
  467. Converse also preserves transitivity:
  468.  
  469. [28]
  470. Theorem “Converse of transitive relations”:
  471. is-transitive R ⇒ is-transitive (R ˘)
  472. Proof:
  473. Assuming `is-transitive R` and using with “Definition of transitivity”:
  474. is-transitive (R ˘)
  475. ≡⟨ “Definition of transitivity” ⟩
  476. ∀ x • ∀ y • ∀ z • x ⦗ R ˘ ⦘ y ⦗ R ˘ ⦘ z ⇒ x ⦗ R ˘ ⦘ z
  477. ≡⟨ “Relation converse” ⟩
  478. ∀ x • ∀ y • ∀ z • x ⦗ R ˘ ⦘ y ⦗ R ˘ ⦘ z ⇒ z ⦗ R ⦘ x
  479. ≡⟨ “Reflexivity of ≡” ⟩
  480. ∀ x • ∀ y • ∀ z • x ⦗ R ˘ ⦘ y ∧ y ⦗ R ˘ ⦘ z ⇒ z ⦗ R ⦘ x
  481. ≡⟨ “Relation converse” ⟩
  482. ∀ x • ∀ y • ∀ z • y ⦗ R ⦘ x ∧ z ⦗ R ⦘ y ⇒ z ⦗ R ⦘ x
  483. ≡⟨ “Symmetry of ∧” ⟩
  484. ∀ x • ∀ y • ∀ z • z ⦗ R ⦘ y ∧ y ⦗ R ⦘ x ⇒ z ⦗ R ⦘ x
  485. ≡⟨ “Interchange of dummies for ∀” ⟩
  486. ∀ z • ∀ y • ∀ x • z ⦗ R ⦘ y ∧ y ⦗ R ⦘ x ⇒ z ⦗ R ⦘ x
  487. ≡⟨ Assumption `is-transitive R` with “Definition of transitivity” ⟩
  488. true
  489.  
  490. Theorem “Converse of transitive relations”: is-transitive R ⇒ is-transitive (R ˘)
  491. Proof:
  492. Assuming `is-transitive R` and using with “Definition of transitivity”
  493. — CalcCheck: Found “Definition of transitivity”:
  494. — CalcCheck: Assumption matches goal
  495. Proving `is-transitive (R ˘)`:
  496. is-transitive (R ˘)
  497. ≡ ⟨ “Definition of transitivity” ⟩
  498. — CalcCheck: Found “Definition of transitivity”
  499. — CalcCheck: ─ OK
  500. (∀ x • (∀ y • (∀ z • x ⦗ R ˘ ⦘ y ⦗ R ˘ ⦘ z ⇒ x ⦗ R ˘ ⦘ z ) ) )
  501. ≡ ⟨ “Relation converse” ⟩
  502. — CalcCheck: Found “Relation converse”
  503. — CalcCheck: ─ OK
  504. (∀ x • (∀ y • (∀ z • x ⦗ R ˘ ⦘ y ⦗ R ˘ ⦘ z ⇒ z ⦗ R ⦘ x ) ) )
  505. ≡ ⟨ “Reflexivity of ≡” ⟩
  506. — CalcCheck: Found (3.5) “Reflexivity of ≡”
  507. — CalcCheck: OK (no change)
  508. — CalcCheck: ─ OK
  509. (∀ x • (∀ y • (∀ z • x ⦗ R ˘ ⦘ y ∧ y ⦗ R ˘ ⦘ z ⇒ z ⦗ R ⦘ x ) ) )
  510. ≡ ⟨ “Relation converse” ⟩
  511. — CalcCheck: Found “Relation converse”
  512. — CalcCheck: ─ OK
  513. (∀ x • (∀ y • (∀ z • y ⦗ R ⦘ x ∧ z ⦗ R ⦘ y ⇒ z ⦗ R ⦘ x ) ) )
  514. ≡ ⟨ “Symmetry of ∧” ⟩
  515. — CalcCheck: Found (3.36) “Symmetry of ∧”
  516. — CalcCheck: OK (no change)
  517. — CalcCheck: ─ OK
  518. (∀ x • (∀ y • (∀ z • z ⦗ R ⦘ y ∧ y ⦗ R ⦘ x ⇒ z ⦗ R ⦘ x ) ) )
  519. ≡ ⟨ “Interchange of dummies for ∀” ⟩
  520. — CalcCheck: Found (8.19) “Interchange of dummies for ∀”
  521. — CalcCheck: ─ OK
  522. (∀ z • (∀ y • (∀ x • z ⦗ R ⦘ y ∧ y ⦗ R ⦘ x ⇒ z ⦗ R ⦘ x ) ) )
  523. ≡ ⟨ Assumption `is-transitive R` with “Definition of transitivity” ⟩
  524. — CalcCheck: Found “Definition of transitivity”
  525. — CalcCheck: Found assumption `is-transitive R`
  526. — CalcCheck: ─ OK
  527. true
  528. — CalcCheck: All steps OK
  529. — CalcCheck: Calculation matches goal ─ OK
  530. [29]
  531. The relation-algebraic formulation of transitivity can again be shown via a relatively straight-forward equivalence calculation — you may need some advance quantifier theorems, e.g.:
  532.  
  533. Axiom (8.20) “Nesting for ∀”: (∀ x, y ❙ R ∧ S • P) ≡ (∀ x ❙ R • (∀ y ❙ S • P))
  534. Theorem (8.20a) “Nesting for ∀”: (∀ x, y ❙ S • P) ≡ (∀ x • (∀ y ❙ S • P))
  535. Axiom “Dummy list permutation for ∀” (∀ x, y ❙ R • P) ≡ (∀ y, x ❙ R • P)
  536. Theorem (8.19) “Interchange of dummies for ∀”: (∀ x ❙ R • (∀ y ❙ S • P)) ≡ (∀ y ❙ S • (∀ x ❙ R • P))
  537. Axiom (9.5) “Distributivity of ∨ over ∀”: P ∨ (∀ x ❙ R • Q) ≡ (∀ x ❙ R • P ∨ Q)
  538. Theorem “Distributivity of ⇒ over ∀”: (P ⇒ (∀ x ❙ R • Q)) ≡ (∀ x ❙ R • P ⇒ Q)
  539. Theorem (9.30a) “Witness”: ((∃ x ❙ R • P) ⇒ Q) ≡ (∀ x • R ∧ P ⇒ Q)
  540. [30]
  541. Theorem “Transitivity”:
  542. is-transitive R ≡ R ⨾ R ⊆ R
  543. Proof:
  544. R ⨾ R ⊆ R
  545. ≡⟨ “Relation inclusion” ⟩
  546. ∀ x • ∀ y • x ⦗ R ⨾ R ⦘ y ⇒ x ⦗ R ⦘ y
  547. ≡⟨ “Relation composition” ⟩
  548. ∀ x • ∀ y • (∃ b • x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y) ⇒ x ⦗ R ⦘ y
  549. ≡⟨ “Definition of ⇒” ⟩
  550. ∀ x • ∀ y • ¬ (∃ b • x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y
  551. ≡⟨ “Generalised De Morgan” ⟩
  552. ∀ x • ∀ y • (∀ b • ¬ (x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y)) ∨ x ⦗ R ⦘ y
  553. ≡⟨ “De Morgan” ⟩
  554. ∀ x • ∀ y • (∀ b • ¬ (x ⦗ R ⦘ b) ∨ ¬ (b ⦗ R ⦘ y)) ∨ x ⦗ R ⦘ y
  555. ≡⟨ “Definition of ⇒” ⟩
  556. ∀ x • ∀ y • (∀ b • (x ⦗ R ⦘ b) ⇒ ¬ (b ⦗ R ⦘ y)) ∨ x ⦗ R ⦘ y
  557. ≡⟨ “Trading for ∀” ⟩
  558. ∀ x • ∀ y • (∀ b ❙ (x ⦗ R ⦘ b) • ¬ (b ⦗ R ⦘ y)) ∨ x ⦗ R ⦘ y
  559. ≡⟨ “Distributivity of ∨ over ∀” ⟩
  560. ∀ x • ∀ y • (∀ b ❙ (x ⦗ R ⦘ b) • ¬ (b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y)
  561. ≡⟨ “Trading for ∀” ⟩
  562. ∀ x • ∀ y • (∀ b • ¬ (x ⦗ R ⦘ b) ∨ ¬ (b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y)
  563. ≡⟨ “Distributivity of ∨ over ∨”, “De Morgan” ⟩
  564. ∀ x • ∀ y • ∀ b • ¬ ((x ⦗ R ⦘ b ⦗ R ⦘ y) ∧ (x ⦗ R ⦘ b)) ∨ x ⦗ R ⦘ y
  565. ≡⟨ “Idempotency of ∧” ⟩
  566. ∀ x • ∀ y • ∀ b • ¬ (x ⦗ R ⦘ b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y
  567. ≡⟨ “Definition of ⇒”, “Interchange of dummies for ∀” ⟩
  568. ∀ x • ∀ b • ∀ y • (x ⦗ R ⦘ b ⦗ R ⦘ y) ⇒ x ⦗ R ⦘ y
  569. ≡⟨ “Definition of transitivity” ⟩
  570. is-transitive R
  571.  
  572. Theorem “Transitivity”: is-transitive R ≡ R ⨾ R ⊆ R
  573. Proof:
  574. Proving `is-transitive R ≡ R ⨾ R ⊆ R`:
  575. R ⨾ R ⊆ R
  576. ≡ ⟨ “Relation inclusion” ⟩
  577. — CalcCheck: Found “Relation inclusion”, “Relation inclusion”
  578. — CalcCheck: ─ OK
  579. (∀ x • (∀ y • x ⦗ R ⨾ R ⦘ y ⇒ x ⦗ R ⦘ y ) )
  580. ≡ ⟨ “Relation composition” ⟩
  581. — CalcCheck: Found “Relation composition”
  582. — CalcCheck: ─ OK
  583. (∀ x • (∀ y • (∃ b • x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y ) ⇒ x ⦗ R ⦘ y ) )
  584. ≡ ⟨ “Definition of ⇒” ⟩
  585. — CalcCheck: Found (3.57) “Definition of ⇒”, (3.59) “Definition of ⇒”, (3.60) “Definition of ⇒”
  586. — CalcCheck: ─ OK
  587. (∀ x • (∀ y • ¬ (∃ b • x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y ) ∨ x ⦗ R ⦘ y ) )
  588. ≡ ⟨ “Generalised De Morgan” ⟩
  589. — CalcCheck: Found (9.17) “Generalised De Morgan”, (9.18a) “Generalised De Morgan”, (9.18b) “Generalised De Morgan”, (9.18c) “Generalised De Morgan”
  590. — CalcCheck: ─ OK
  591. (∀ x • (∀ y • (∀ b • ¬ (x ⦗ R ⦘ b ∧ b ⦗ R ⦘ y) ) ∨ x ⦗ R ⦘ y ) )
  592. ≡ ⟨ “De Morgan” ⟩
  593. — CalcCheck: Found (3.47a) “De Morgan”, (3.47b) “De Morgan”
  594. — CalcCheck: ─ OK
  595. (∀ x • (∀ y • (∀ b • ¬ (x ⦗ R ⦘ b) ∨ ¬ (b ⦗ R ⦘ y) ) ∨ x ⦗ R ⦘ y ) )
  596. ≡ ⟨ “Definition of ⇒” ⟩
  597. — CalcCheck: Found (3.57) “Definition of ⇒”, (3.59) “Definition of ⇒”, (3.60) “Definition of ⇒”
  598. — CalcCheck: ─ OK
  599. (∀ x • (∀ y • (∀ b • x ⦗ R ⦘ b ⇒ ¬ (b ⦗ R ⦘ y) ) ∨ x ⦗ R ⦘ y ) )
  600. ≡ ⟨ “Trading for ∀” ⟩
  601. — CalcCheck: Found (9.2) “Trading for ∀”, (9.3a) “Trading for ∀”, (9.3b) “Trading for ∀”, (9.3c) “Trading for ∀”, (9.4a) “Trading for ∀”, (9.4b) “Trading for ∀”, (9.4c) “Trading for ∀”, (9.4d) “Trading for ∀”
  602. — CalcCheck: ─ OK
  603. (∀ x • (∀ y • (∀ b ❙ x ⦗ R ⦘ b • ¬ (b ⦗ R ⦘ y) ) ∨ x ⦗ R ⦘ y ) )
  604. ≡ ⟨ “Distributivity of ∨ over ∀” ⟩
  605. — CalcCheck: Found (9.5) “Distributivity of ∨ over ∀”
  606. — CalcCheck: ─ OK
  607. (∀ x • (∀ y • (∀ b ❙ x ⦗ R ⦘ b • ¬ (b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y ) ) )
  608. ≡ ⟨ “Trading for ∀” ⟩
  609. — CalcCheck: Found (9.2) “Trading for ∀”, (9.3a) “Trading for ∀”, (9.3b) “Trading for ∀”, (9.3c) “Trading for ∀”, (9.4a) “Trading for ∀”, (9.4b) “Trading for ∀”, (9.4c) “Trading for ∀”, (9.4d) “Trading for ∀”
  610. — CalcCheck: ─ OK
  611. (∀ x • (∀ y • (∀ b • ¬ (x ⦗ R ⦘ b) ∨ (¬ (b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y) ) ) )
  612. ≡ ⟨ “Distributivity of ∨ over ∨”, “De Morgan” ⟩
  613. — CalcCheck: Found (3.31) “Distributivity of ∨ over ∨”
  614. — CalcCheck: Found (3.47a) “De Morgan”, (3.47b) “De Morgan”
  615. — CalcCheck: ─ OK
  616. (∀ x • (∀ y • (∀ b • ¬ (x ⦗ R ⦘ b ⦗ R ⦘ y ∧ x ⦗ R ⦘ b) ∨ x ⦗ R ⦘ y ) ) )
  617. ≡ ⟨ “Idempotency of ∧” ⟩
  618. — CalcCheck: Found (3.38) “Idempotency of ∧”
  619. — CalcCheck: ─ OK
  620. (∀ x • (∀ y • (∀ b • ¬ (x ⦗ R ⦘ b ⦗ R ⦘ y) ∨ x ⦗ R ⦘ y ) ) )
  621. ≡ ⟨ “Definition of ⇒”, “Interchange of dummies for ∀” ⟩
  622. — CalcCheck: Found (3.57) “Definition of ⇒”, (3.59) “Definition of ⇒”, (3.60) “Definition of ⇒”
  623. — CalcCheck: Found (8.19) “Interchange of dummies for ∀”
  624. — CalcCheck: ─ OK
  625. (∀ x • (∀ b • (∀ y • x ⦗ R ⦘ b ⦗ R ⦘ y ⇒ x ⦗ R ⦘ y ) ) )
  626. ≡ ⟨ “Definition of transitivity” ⟩
  627. — CalcCheck: Found “Definition of transitivity”
  628. — CalcCheck: ─ OK
  629. is-transitive R
  630. — CalcCheck: All steps OK
  631. — CalcCheck: Calculation matches goal ─ OK
  632. [31]
  633. Calling all brothers…
  634. [32]
  635. The free variables of the following two theorem statements are intended to have the following types:
  636.  
  637. R : A ↔ B
  638. S : A ↔ C
  639. (I could have put those into additional explicit universal quantifiers…)
  640.  
  641. All bound variables are named accordingly.
  642.  
  643. Once you can calculate, start from the right…
  644.  
  645. [33]
  646. Theorem (R1): ∀ b : B • ∀ c : C •
  647. (∀ a : A ❙ a ⦗ R ⦘ b • a ⦗ S ⦘ c) ≡ b ⦗ ~ (R ˘ ⨾ ~ S) ⦘ c
  648. Proof:
  649. For any `b`, `c`:
  650. b ⦗ ~ (R ˘ ⨾ ~ S) ⦘ c
  651. ≡⟨ “Relation complement” ⟩
  652. ¬ (b ⦗ (R ˘ ⨾ ~ S) ⦘ c)
  653. ≡⟨ “Relation composition” ⟩
  654. ¬ (∃ a : A • (b ⦗ R ˘ ⦘ a ∧ a ⦗ ~ S ⦘ c))
  655. ≡⟨ “Relation converse” ⟩
  656. ¬ (∃ a • (a ⦗ R ⦘ b ∧ a ⦗ ~ S ⦘ c))
  657. ≡⟨ “Relation complement” ⟩
  658. ¬ (∃ a • a ⦗ R ⦘ b ∧ ¬ (a ⦗ S ⦘ c))
  659. ≡⟨ “Double negation” ⟩
  660. ¬ (∃ a • ¬ ¬ (a ⦗ R ⦘ b) ∧ ¬ (a ⦗ S ⦘ c))
  661. ≡⟨ “De Morgan” ⟩
  662. ¬ (∃ a • ¬ (¬ (a ⦗ R ⦘ b) ∨ (a ⦗ S ⦘ c)))
  663. ≡⟨ “Generalised De Morgan” ⟩
  664. (∀ a • (¬ (a ⦗ R ⦘ b) ∨ (a ⦗ S ⦘ c)))
  665. ≡⟨ “Definition of ⇒” ⟩
  666. (∀ a • (a ⦗ R ⦘ b) ⇒ (a ⦗ S ⦘ c))
  667. ≡⟨ “Trading for ∀” ⟩
  668. (∀ a : A ❙ a ⦗ R ⦘ b • a ⦗ S ⦘ c)
  669.  
  670. Theorem (R1): (∀ b : B • (∀ c : C • (∀ a : A ❙ a ⦗ R ⦘ b • a ⦗ S ⦘ c ) ≡ b ⦗ ~ (R ˘ ⨾ ~ S) ⦘ c ) )
  671. — CalcCheck: Metavariables: A = A〖b, c 〗, C = C〖b 〗, R = R〖b, c 〗, S = S〖b, c 〗
  672. — CalcCheck: Proviso: ¬occurs(`a`, `R, S`)
  673. Proof:
  674. For any ` b`:
  675. For any ` c`:
  676. Proving `(∀ a : A ❙ a ⦗ R ⦘ b • a ⦗ S ⦘ c ) ≡ b ⦗ ~ (R ˘ ⨾ ~ S) ⦘ c`:
  677. b ⦗ ~ (R ˘ ⨾ ~ S) ⦘ c
  678. ≡ ⟨ “Relation complement” ⟩
  679. — CalcCheck: Found “Relation complement”
  680. — CalcCheck: ─ OK
  681. ¬ (b ⦗ R ˘ ⨾ ~ S ⦘ c)
  682. ≡ ⟨ “Relation composition” ⟩
  683. — CalcCheck: Found “Relation composition”
  684. — CalcCheck: ─ OK
  685. ¬ (∃ a : A • b ⦗ R ˘ ⦘ a ∧ a ⦗ ~ S ⦘ c )
  686. ≡ ⟨ “Relation converse” ⟩
  687. — CalcCheck: Found “Relation converse”
  688. — CalcCheck: ─ OK
  689. ¬ (∃ a • a ⦗ R ⦘ b ∧ a ⦗ ~ S ⦘ c )
  690. ≡ ⟨ “Relation complement” ⟩
  691. — CalcCheck: Found “Relation complement”
  692. — CalcCheck: ─ OK
  693. ¬ (∃ a • a ⦗ R ⦘ b ∧ ¬ (a ⦗ S ⦘ c) )
  694. ≡ ⟨ “Double negation” ⟩
  695. — CalcCheck: Found (3.12) “Double negation”
  696. — CalcCheck: ─ OK
  697. ¬ (∃ a • ¬ (¬ (a ⦗ R ⦘ b)) ∧ ¬ (a ⦗ S ⦘ c) )
  698. ≡ ⟨ “De Morgan” ⟩
  699. — CalcCheck: Found (3.47a) “De Morgan”, (3.47b) “De Morgan”
  700. — CalcCheck: ─ OK
  701. ¬ (∃ a • ¬ (¬ (a ⦗ R ⦘ b) ∨ a ⦗ S ⦘ c) )
  702. ≡ ⟨ “Generalised De Morgan” ⟩
  703. — CalcCheck: Found (9.17) “Generalised De Morgan”, (9.18a) “Generalised De Morgan”, (9.18b) “Generalised De Morgan”, (9.18c) “Generalised De Morgan”
  704. — CalcCheck: ─ OK
  705. (∀ a • ¬ (a ⦗ R ⦘ b) ∨ a ⦗ S ⦘ c )
  706. ≡ ⟨ “Definition of ⇒” ⟩
  707. — CalcCheck: Found (3.57) “Definition of ⇒”, (3.59) “Definition of ⇒”, (3.60) “Definition of ⇒”
  708. — CalcCheck: ─ OK
  709. (∀ a • a ⦗ R ⦘ b ⇒ a ⦗ S ⦘ c )
  710. ≡ ⟨ “Trading for ∀” ⟩
  711. — CalcCheck: Found (9.2) “Trading for ∀”, (9.3a) “Trading for ∀”, (9.3b) “Trading for ∀”, (9.3c) “Trading for ∀”, (9.4a) “Trading for ∀”, (9.4b) “Trading for ∀”, (9.4c) “Trading for ∀”, (9.4d) “Trading for ∀”
  712. — CalcCheck: ─ OK
  713. (∀ a : A ❙ a ⦗ R ⦘ b • a ⦗ S ⦘ c )
  714. — CalcCheck: All steps OK
  715. — CalcCheck: Calculation matches goal ─ OK
  716. [34]
  717. Prove (R2) by “Relation inclusion” and start calculating from the left — in doubt, make the subproof goal explicit. You will probably need:
  718.  
  719. (3.66): p ∧ (p ⇒ q) ≡ p ∧ q
  720. “Instantiation”: (∀ x • P) ⇒ P[x ≔ E]
  721. “Body monotonicity of ∃”: (∀ x ❙ R • Q ⇒ P) ⇒ ((∃ x ❙ R • Q) ⇒ (∃ x ❙ R • P))
  722. “Distributivity of ∧ over ∃”: P ∧ (∃ x ❙ R • Q) ≡ (∃ x ❙ R • P ∧ Q)
  723. [35]
  724. Theorem (R2): R ⨾ ~ (R ˘ ⨾ ~ S) ⊆ S
  725. Proof:
  726. Using “Relation inclusion”:
  727. For any `a`, `c`:
  728.  
  729. Theorem (R2): R ⨾ ~ (R ˘ ⨾ ~ S) ⊆ S
  730. Proof:
  731. Using “Relation inclusion”:
  732. Subproof:
  733. For any ` a`:
  734. For any ` c`:
  735. ⟪ expecting «expression»! ⟫
  736.  
  737. — CalcCheck: Could not determine the goal for this calculation.
  738. — CalcCheck: Found “Relation inclusion”, “Relation inclusion”
  739. — CalcCheck: Could not justify this step!
  740. Check and Save
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement