Docs / Studies / Studies.Gallin1975

Intensional and Higher-Order Modal Logic: With Applications to Montague Semantics

Gallin, D. (1975). North-Holland

Montague's intensional logic IL has variables and constants of every type, application, abstraction and identity, and two operators on indices: ^A, the intension of A, a function from indices, and ˇA, the value at the current index of an intension. A term has a value at an index under an assignment, a constant denoting at each index what its meaning gives it there. Gallin translates IL into the two-sorted type theory Ty₂, where indices are the values of variables of type $s$: a constant becomes a constant of type $⟨s,α⟩$ applied to a distinguished index variable, ^A the abstraction of the translate of A over that variable, and ˇA the application of the translate of A to it. The translation preserves the semantics: the value of a term at an index is the value of its translate with the index variable sent to that index, so a formula is valid in IL exactly when its translate is valid in Ty₂.

Implementation notes

The types of IL are the composition engine's types, the intension type $⟨s,α⟩$ being Ty.intens α, and the terms of Ty₂ are the engine's terms under its total interpretation, with application the mode of functional application and identity a constant interpreted as equality. Variables are typed by a typing of their indices, as the engine's are. The index variable is the variable 0 of the translate, and the variables of the term being translated are shifted up by one, so the translation is defined on every term and captures no variable.

References

  • Gallin 1975, Intensional and Higher-Order Modal Logic: With Applications to Montague Semantics

Declarations

L43–53
L59–71
L85–91
L99–104
L112–124

Gallin's Lemma 8.2.1, that the translation preserves the semantics: under any assignment g of the translate's variables, the translate denotes the value of the term at the index g 0 under the assignment g makes to the shifted variables.

theorem eval_toTy2L133–158
{K : Montague.Ty → Type u} {E W : Type} {S : Montague.Sorts} {Γ : ℕ → Montague.Ty} (m : {α : Montague.Ty} → K α → W → Montague.Ty.Domain E W α S) (g : (n : ℕ) → Montague.Ty.Domain E W (typing Γ n) S) {α : Montague.Ty} (A : IL.Term Γ K α) :
Montague.Term.eval (fun {ty : Montague.Ty} => Constant.interp fun {α : Montague.Ty} => m) g A.toTy2 = IL.Term.value (fun {α : Montague.Ty} => m) (fun (n : ℕ) => g (n + 1)) (g 0) A

Built from , , , ,

Gallin's Theorem 8.2 (i): a formula is valid in IL, true in every model at every index under every assignment, exactly when its translate is valid in Ty₂.

theorem valid_iff_valid_toTy2L160–171
{K : Montague.Ty → Type u} {S : Montague.Sorts} {Γ : ℕ → Montague.Ty} (A : IL.Term Γ K Montague.Ty.t) :
(∀ (E W : Type) [Nonempty E] [Nonempty W] (m : {α : Montague.Ty} → K α → W → Montague.Ty.Domain E W α S) (g : (n : ℕ) → Montague.Ty.Domain E W (Γ n) S) (i : W), IL.Term.value (fun {α : Montague.Ty} => m) g i A) ↔ ∀ (E W : Type) [Nonempty E] [Nonempty W] (m : {α : Montague.Ty} → K α → W → Montague.Ty.Domain E W α S) (g : (n : ℕ) → Montague.Ty.Domain E W (typing Γ n) S), Montague.Term.eval (fun {ty : Montague.Ty} => Constant.interp fun {α : Montague.Ty} => m) g A.toTy2

Built from , , , ,