Skip to content

A coq plugin implementing the translation associated to a modality

Notifications You must be signed in to change notification settings

KevinQuirin/translation-mod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

translation-mod

A coq plugin implementing the translation associated to a modality

Let ◯ be a strict modality.

To explain the translation on positive types as well, we also translate the sum type A + B, with associated constructors in and inr and eliminator ⟨_,_⟩. We note J the eliminator of the identity type.

  • For types (assuming A ≠ Type)

  • [Type] ≔ (Type ; πType)

  • We introduce the notation ⟦A⟧ ≔ π1 [A]

  • For dependent sums

  • x:A B] ≔ (Σx:⟦A⟧⟦B⟧, πΣ[A],[B])

  • [(x,y)] ≔ ([x],[y])

  • i t] ≔ πi [t]

  • For dependent products

  • x:A B] ≔ (Πx:⟦A⟧⟦B⟧, πΠ[A],[B])

  • [λ x:A, M] ≔ λ x:⟦A⟧, [M]

  • [t t'] ≔ [t] [t']

  • For paths

  • [A = B] ≔ ([A] = [B] ; π=[A],[B])

  • [idpath] ≔ idpath

  • [J] ≔ J

  • For sums

  • [A + B] ≔ (◯ ([|A|] + [|B|]) ; π[|A|]+[|B|])

  • [in t] ≔ η(in [t])

  • [inr t] ≔ η(inr [t])

  • [⟨f,g⟩] ≔ ◯rec⟦A⟧+⟦B⟧⟨[f],[g]⟩

where πΣA, B (resp. πΠA, B, resp. π=A, B) is the proof that Σx : AB (resp. ∏x : AB, resp A = B) is modal as soon as A and B are, and πA a proof that ◯A is always modal.

About

A coq plugin implementing the translation associated to a modality

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published