1 (*********************************************************************************************************************************)
2 (* ProgrammingLanguageEnrichment *)
4 (* Types are enriched in Judgments. *)
6 (*********************************************************************************************************************************)
8 Generalizable All Variables.
9 Require Import Preamble.
10 Require Import General.
11 Require Import Categories_ch1_3.
12 Require Import InitialTerminal_ch2_2.
13 Require Import Functors_ch1_4.
14 Require Import Isomorphisms_ch1_5.
15 Require Import ProductCategories_ch1_6_1.
16 Require Import OppositeCategories_ch1_6_2.
17 Require Import Enrichment_ch2_8.
18 Require Import Subcategories_ch7_1.
19 Require Import NaturalTransformations_ch7_4.
20 Require Import NaturalIsomorphisms_ch7_5.
21 Require Import BinoidalCategories.
22 Require Import PreMonoidalCategories.
23 Require Import MonoidalCategories_ch7_8.
24 Require Import Coherence_ch7_8.
25 Require Import Enrichment_ch2_8.
26 Require Import RepresentableStructure_ch7_2.
27 Require Import FunctorCategories_ch7_7.
29 Require Import Enrichments.
30 Require Import NaturalDeduction.
31 Require Import NaturalDeductionCategory.
32 Require Import ProgrammingLanguageCategory.
33 Export ProgrammingLanguageCategory.
35 Section ProgrammingLanguageEnrichment.
37 Context `(PL:ProgrammingLanguage).
39 Definition TypesEnrichedInJudgments : SurjectiveEnrichment.
41 {| senr_c_pm := TypesL_PreMonoidal PL
42 ; senr_v := JudgmentsL PL
43 ; senr_v_bin := Judgments_Category_binoidal _
44 ; senr_v_pmon := Judgments_Category_premonoidal _
45 ; senr_v_mon := Judgments_Category_monoidal _
46 ; senr_c_bin := Types_binoidal PL
51 End ProgrammingLanguageEnrichment.