From Tealeaves Require Examples.VariadicLet.Terms Examples.VariadicLet.Instances.Simple Examples.VariadicLet.Instances.Tele Examples.VariadicLet.Instances.LetRec. Import Terms. Parameters (x y z: atom). Definition term1: term LN := letin [tvar (Fr x)] (tvar (Bd 0)). Definition term2: term LN := letin [tvar (Bd 0)] (tvar (Bd 0)). Definition term3: term LN := letin [tvar (Fr x); tvar (Bd 0)] (tvar (Bd 0)). Definition term4: term LN := letin [tvar (Fr x); tvar (Bd 1)] (tvar (Bd 0)). Definition term5: term LN := letin [tvar (Fr x); tvar (Bd 0) ; tvar (Bd 1)] (tvar (Bd 2)). Definition term6: term LN := letin [tvar (Bd 1) ; tvar (Bd 2) ; tvar (Bd 3)] (tvar (Bd 2)). Definition compute_which_are_closed `{mapdt: Mapdt nat term}: list bool := map (LCb (Mapdt_U := mapdt)) [term1; term2; term3; term4; term5; term6]. Definition compute_column_of_table `{mapdt: Mapdt nat term}: list nat := map (level (Mapdt_U := mapdt)) [term1; term2; term3; term4; term5; term6]. Section JAR_table.(* = [0; 1; 1; 2; 2; 4] *)(* = [0; 1; 0; 1; 0; 2] *)(* = [0; 0; 0; 0; 0; 1] *) End JAR_table.(* = [true; false; false; false; false; false] *)(* = [true; false; true; false; true; false] *)(* = [true; true; true; true; true; false] *) Module demo1. Import Simple.reflexivity. Qed.LCnb 0 term1 = truereflexivity. Qed.LCnb 0 term2 = falsereflexivity. Qed.LCnb 1 term2 = truereflexivity. Qed.LCnb 0 term4 = falsereflexivity. Qed.LCnb 1 term4 = falsereflexivity. Qed.LCnb 0 term6 = falsereflexivity. Qed.LCnb 1 term6 = falsereflexivity. Qed. Example ex1: level term1 = 0 := ltac:(trivial). Example ex2: level term2 = 1 := ltac:(trivial). Example ex23: level term3 = 1 := ltac:(trivial). Example ex3: level term4 = 2 := ltac:(trivial). Example ex4: level term5 = 2 := ltac:(trivial). Example ex5: level term6 = 4 := ltac:(trivial). End demo1. Module demo2. Import Tele. Example ex1: level term1 = 0 := ltac:(trivial). Example ex2: level term2 = 1 := ltac:(trivial). Example ex23: level term3 = 0 := ltac:(trivial). Example ex3: level term4 = 1 := ltac:(trivial). Example ex4: level term5 = 0 := ltac:(trivial). Example ex5: level term6 = 2 := ltac:(trivial). End demo2. Module demo3. Import LetRec.LCnb 2 term6 = falsereflexivity. Qed.LCnb 0 term1 = truereflexivity. Qed.LCnb 0 term2 = truereflexivity. Qed. Example ex1: level term1 = 0 := ltac:(trivial). Example ex2: level term2 = 0 := ltac:(trivial). Example ex23: level term3 = 0 := ltac:(trivial). Example ex3: level term4 = 0 := ltac:(trivial). Example ex4: level term5 = 0 := ltac:(trivial). Example ex5: level term6 = 1 := ltac:(trivial). End demo3.LCnb 0 term4 = true