@@ -23,13 +23,13 @@ variable {L : Language} {ξ : Type*}
2323
2424def nestFormulae (φ : Semiformula L ξ n) (Ψ : Fin n → Semiformula L ξ (m + 1 )) : Semiformula L ξ m :=
2525 let σ : Semiformula L ξ (m + n) :=
26- (Matrix.conj fun i : Fin n ↦ Rewriting.subst (Ψ i) (#(i.addCast m) :> fun j ↦ #(j.addNat n))) ➝
26+ (Matrix.conj fun i : Fin n ↦ Rewriting.subst (Ψ i) (#(i.addCast m) :> fun j ↦ #(j.addNat n))) 🡒
2727 Rewriting.subst φ fun i ↦ #(i.addCast m)
2828 ∀⁰^[n] σ
2929
3030def nestFormulaeFunc (φ : Semiformula L ξ (n + 1 )) (Ψ : Fin n → Semiformula L ξ (m + 1 )) : Semiformula L ξ (m + 1 ) :=
3131 let σ : Semiformula L ξ ((m + 1 ) + n) :=
32- (Matrix.conj fun i : Fin n ↦ Rewriting.subst (Ψ i) (#(i.addCast m.succ) :> fun j ↦ #(j.succ.addNat n))) ➝
32+ (Matrix.conj fun i : Fin n ↦ Rewriting.subst (Ψ i) (#(i.addCast m.succ) :> fun j ↦ #(j.succ.addNat n))) 🡒
3333 Rewriting.subst φ (#((0 : Fin (m + 1 )).addNat n) :> fun i ↦ #(i.addCast m.succ))
3434 ∀⁰^[n] σ
3535
@@ -375,8 +375,8 @@ macro_rules
375375 | `(⤫formula($type)[ $binders* | $fbinders* | $φ ∧ $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] ⋏ ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
376376 | `(⤫formula($type)[ $binders* | $fbinders* | $φ ∨ $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] ⋎ ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
377377 | `(⤫formula($type)[ $binders* | $fbinders* | ¬$φ ]) => `(∼⤫formula($type)[ $binders* | $fbinders* | $φ ])
378- | `(⤫formula($type)[ $binders* | $fbinders* | $φ → $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] ➝ ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
379- | `(⤫formula($type)[ $binders* | $fbinders* | $φ ↔ $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] ⭤ ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
378+ | `(⤫formula($type)[ $binders* | $fbinders* | $φ → $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] 🡒 ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
379+ | `(⤫formula($type)[ $binders* | $fbinders* | $φ ↔ $ψ ]) => `(⤫formula($type)[ $binders* | $fbinders* | $φ ] 🡘 ⤫formula($type)[ $binders* | $fbinders* | $ψ ])
380380 | `(⤫formula($type)[ $binders* | $fbinders* | ⋀ $i, $φ ]) => `(Matrix.conj fun $i ↦ ⤫formula($type)[ $binders* | $fbinders* | $φ ])
381381 | `(⤫formula($type)[ $binders* | $fbinders* | ⋁ $i, $φ ]) => `(Matrix.disj fun $i ↦ ⤫formula($type)[ $binders* | $fbinders* | $φ ])
382382 | `(⤫formula($type)[ $binders* | $fbinders* | ⋀ $i < $t, $φ ]) => `(conjLt (fun $i ↦ ⤫formula($type)[ $binders* | $fbinders* | $φ ]) $t)
@@ -718,61 +718,61 @@ macro_rules
718718 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term = $u:first_order_term ]) => do
719719 let x₁ : TSyntax `ident ← TSyntax.freshIdent
720720 let x₂ : TSyntax `ident ← TSyntax.freshIdent
721- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 = #0 ”)))
721+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 = #0 ”)))
722722 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ≠ $u:first_order_term ]) => do
723723 let x₁ : TSyntax `ident ← TSyntax.freshIdent
724724 let x₂ : TSyntax `ident ← TSyntax.freshIdent
725- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ≠ #0 ”)))
725+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ≠ #0 ”)))
726726 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term < $u:first_order_term ]) => do
727727 let x₁ : TSyntax `ident ← TSyntax.freshIdent
728728 let x₂ : TSyntax `ident ← TSyntax.freshIdent
729- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 < #0 ”)))
729+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 < #0 ”)))
730730 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ≮ $u:first_order_term ]) => do
731731 let x₁ : TSyntax `ident ← TSyntax.freshIdent
732732 let x₂ : TSyntax `ident ← TSyntax.freshIdent
733- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ≮ #0 ”)))
733+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ≮ #0 ”)))
734734 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ≤ $u:first_order_term ]) => do
735735 let x₁ : TSyntax `ident ← TSyntax.freshIdent
736736 let x₂ : TSyntax `ident ← TSyntax.freshIdent
737- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ≤ #0 ”)))
737+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ≤ #0 ”)))
738738 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ≰ $u:first_order_term ]) => do
739739 let x₁ : TSyntax `ident ← TSyntax.freshIdent
740740 let x₂ : TSyntax `ident ← TSyntax.freshIdent
741- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ≰ #0 ”)))
741+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ≰ #0 ”)))
742742 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ∈ $u:first_order_term ]) => do
743743 let x₁ : TSyntax `ident ← TSyntax.freshIdent
744744 let x₂ : TSyntax `ident ← TSyntax.freshIdent
745- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ∈ #0 ”)))
745+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ∈ #0 ”)))
746746 | `(⤫formula(faf)[ $binders* | $fbinders* | $t:first_order_term ∉ $u:first_order_term ]) => do
747747 let x₁ : TSyntax `ident ← TSyntax.freshIdent
748748 let x₂ : TSyntax `ident ← TSyntax.freshIdent
749- `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] ➝ ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] ➝ “#1 ∉ #0 ”)))
749+ `(∀⁰ (⤫term(faf)[ $x₁ $binders* | $fbinders* | $t ] 🡒 ∀⁰ (⤫term(faf)[ $x₁ $x₂ $binders* | $fbinders* | $u ] 🡒 “#1 ∉ #0 ”)))
750750
751751macro_rules
752752 | `(⤫formula(faf)[ $binders* | $fbinders* | ∀ $x < $t, $φ ]) => do
753753 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
754754 let vt : TSyntax `ident ← TSyntax.freshIdent
755- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.ballLT #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
755+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.ballLT #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
756756 | `(⤫formula(faf)[ $binders* | $fbinders* | ∀ $x ≤ $t, $φ ]) => do
757757 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
758758 let vt : TSyntax `ident ← TSyntax.freshIdent
759- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.ballLE #0 ⤫formula(faf)[ $x $binders* | $fbinders* | $φ ]))
759+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.ballLE #0 ⤫formula(faf)[ $x $binders* | $fbinders* | $φ ]))
760760 | `(⤫formula(faf)[ $binders* | $fbinders* | ∀ $x ∈ $t, $φ ]) => do
761761 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
762762 let vt : TSyntax `ident ← TSyntax.freshIdent
763- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.ballMem #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
763+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.ballMem #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
764764 | `(⤫formula(faf)[ $binders* | $fbinders* | ∃ $x < $t, $φ ]) => do
765765 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
766766 let vt : TSyntax `ident ← TSyntax.freshIdent
767- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.bexsLT #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
767+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.bexsLT #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
768768 | `(⤫formula(faf)[ $binders* | $fbinders* | ∃ $x ≤ $t, $φ ]) => do
769769 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
770770 let vt : TSyntax `ident ← TSyntax.freshIdent
771- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.bexsLE #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
771+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.bexsLE #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
772772 | `(⤫formula(faf)[ $binders* | $fbinders* | ∃ $x ∈ $t, $φ ]) => do
773773 if binders.elem x then Macro.throwErrorAt x "error: variable is duplicated." else
774774 let vt : TSyntax `ident ← TSyntax.freshIdent
775- `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] ➝ Semiformula.bexsMem #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
775+ `(∀⁰ (⤫term(faf)[ $vt $binders* | $fbinders* | $t ] 🡒 Semiformula.bexsMem #0 ⤫formula(faf)[ $x $vt $binders* | $fbinders* | $φ ]))
776776
777777syntax "f‘" first_order_term:0 "’" : term
778778syntax "f‘" ident* "| " first_order_term:0 "’" : term
0 commit comments