From bcb579eafc65e93bda208386d65bd4abeca575cb Mon Sep 17 00:00:00 2001
From: Olivier <olivier.martinot@inria.fr>
Date: Wed, 18 Jan 2023 15:04:44 +0100
Subject: [PATCH] Change 'int' to more correct 'nat' in the test suite.

---
 client/test/TestF.ml | 154 +++++++++++++++++++++----------------------
 1 file changed, 77 insertions(+), 77 deletions(-)

diff --git a/client/test/TestF.ml b/client/test/TestF.ml
index f5ab310..20a2246 100644
--- a/client/test/TestF.ml
+++ b/client/test/TestF.ml
@@ -248,29 +248,29 @@ let bool_env =
 let bool_datatype =
   Datatype.Type "bool", []
 
-let int_env =
-  let int_typedecl =
+let nat_env =
+  let nat_typedecl =
     let open Datatype in {
-      name = Type "int";
+      name = Type "nat";
       type_params = [];
       data_kind = Variant;
       labels_descr = [
         {
           label_name = Label "O";
-          type_name = Type "int";
+          type_name = Type "nat";
           arg_type = F.TyProduct [];
         } ; {
           label_name = Label "S";
-          type_name = Type "int";
-          arg_type = F.TyConstr (Type "int", []);
+          type_name = Type "nat";
+          arg_type = F.TyConstr (Type "nat", []);
         }
       ]
     }
   in
-  Datatype.Env.add_decl bool_env int_typedecl
+  Datatype.Env.add_decl bool_env nat_typedecl
 
-let int_datatype =
-  Datatype.Type "int", []
+let nat_datatype =
+  Datatype.Type "nat", []
 
 (* small gadt *)
 let small_gadt_env =
@@ -282,9 +282,9 @@ let small_gadt_env =
       data_kind = Variant;
       labels_descr = [
         {
-          label_name = Label "Int";
+          label_name = Label "Nat";
           type_name = Type "ty";
-          arg_type = F.TyEq (F.TyVar alpha, F.TyConstr int_datatype);
+          arg_type = F.TyEq (F.TyVar alpha, F.TyConstr nat_datatype);
         } ; {
           label_name = Label "Bool";
           type_name = Type "ty";
@@ -293,11 +293,11 @@ let small_gadt_env =
       ];
     }
   in
-  Datatype.Env.add_decl int_env small_gadt_typedecl
+  Datatype.Env.add_decl nat_env small_gadt_typedecl
 
-let int_pattern arg_type pat =
+let nat_pattern arg_type pat =
   pvariant
-    (Datatype.Label "Int")
+    (Datatype.Label "Nat")
     (Datatype.Type "ty", arg_type)
     pat
 
@@ -322,42 +322,42 @@ let mu_under_forall =
 
 (*
 Λα.
-  λ(w : Eq(α,int)).
+  λ(w : Eq(α,nat)).
     use w in
     ( O : α )
  *)
 let cast =
   let alpha = 0 in
   tyabs alpha @@
-  abs "w" (F.TyEq (F.TyVar alpha, F.TyConstr int_datatype)) @@
+  abs "w" (F.TyEq (F.TyVar alpha, F.TyConstr nat_datatype)) @@
   use (var "w") @@
-  annot (variant (Datatype.Label "O") int_datatype unit) (F.TyVar alpha)
+  annot (variant (Datatype.Label "O") nat_datatype unit) (F.TyVar alpha)
 
 (*
 Λα.
   λ(n : α ty).
     match_α n with
-    | Int p ->
-        use (p : Eq(α,int)) in (O : α)
+    | Nat p ->
+        use (p : Eq(α,nat)) in (O : α)
     | Bool p ->
         use (p : Eq(α,bool)) in (True : α)
  *)
 let match_gadt_default =
   let alpha = 0 in
 
-  let int_pat =
-    int_pattern [F.TyVar alpha] (pvar "p")
+  let nat_pat =
+    nat_pattern [F.TyVar alpha] (pvar "p")
   in
 
-  let int_payoff =
+  let nat_payoff =
     use
       (annot
          (var "p")
-         (F.TyEq (F.TyVar alpha, F.TyConstr int_datatype)))
+         (F.TyEq (F.TyVar alpha, F.TyConstr nat_datatype)))
       (annot
          (variant
             (Datatype.Label "O")
-            int_datatype
+            nat_datatype
             unit)
          (F.TyVar alpha))
   in
@@ -381,7 +381,7 @@ let match_gadt_default =
   tyabs alpha @@
   abs "n" (F.TyConstr (Datatype.Type "ty", [F.TyVar alpha])) @@
   match_ (F.TyVar alpha) (var "n") [
-    (int_pat , int_payoff);
+    (nat_pat , nat_payoff);
     (bool_pat , bool_payoff)
   ]
 
@@ -389,27 +389,27 @@ let match_gadt_default =
 (Λα.
   λ(n : α ty).
     match_α n with
-    | Int p ->
-        use (p : Eq(α,int)) in (O : α)
+    | Nat p ->
+        use (p : Eq(α,nat)) in (O : α)
     | Bool p ->
         use (p : Eq(α,bool)) in (True : α))
-int
-(Int (refl_int))
+nat
+(Nat (refl_nat))
  *)
-let default_int =
+let default_nat =
   app
-    (tyapp match_gadt_default (F.TyConstr int_datatype))
+    (tyapp match_gadt_default (F.TyConstr nat_datatype))
     (variant
-       (Datatype.Label "Int")
-       (Datatype.Type "ty", [F.TyConstr int_datatype])
-       (refl (F.TyConstr int_datatype)))
+       (Datatype.Label "Nat")
+       (Datatype.Type "ty", [F.TyConstr nat_datatype])
+       (refl (F.TyConstr nat_datatype)))
 
 (*
 (Λα.
   λ(n : α ty).
     match_α n with
-    | Int p ->
-        use (p : Eq(α,int)) in (O : α)
+    | Nat p ->
+        use (p : Eq(α,nat)) in (O : α)
     | Bool p ->
         use (p : Eq(α,bool)) in (True : α))
 bool
@@ -427,8 +427,8 @@ let default_bool =
 (Λα.
   λ(n : α ty).
     match_α n with
-    | Int p ->
-        use (p : Eq(α,int)) in (O : α)
+    | Nat p ->
+        use (p : Eq(α,nat)) in (O : α)
     | Bool p ->
         use (p : Eq(α,bool)) in (True : α))
 bool
@@ -437,16 +437,16 @@ bool
 let default_absurd_wrong =
   let alpha = 0 in
 
-  let int_pat =
-    int_pattern [F.TyVar alpha] (pvar "p")
+  let nat_pat =
+    nat_pattern [F.TyVar alpha] (pvar "p")
   in
 
-  let int_payoff =
-    use (annot (var "p") (F.TyEq (F.TyVar alpha, F.TyConstr int_datatype))) @@
+  let nat_payoff =
+    use (annot (var "p") (F.TyEq (F.TyVar alpha, F.TyConstr nat_datatype))) @@
     annot
       (variant
          (Datatype.Label "O")
-         int_datatype
+         nat_datatype
          (absurd unit_type))
       (F.TyVar alpha)
   in
@@ -468,7 +468,7 @@ let default_absurd_wrong =
   tyabs alpha @@
   abs "n" (F.TyConstr (Datatype.Type "ty", [F.TyVar alpha])) @@
   match_ (F.TyVar alpha) (var "n") [
-    (int_pat , int_payoff);
+    (nat_pat , nat_payoff);
     (bool_pat , bool_payoff)
   ]
 
@@ -477,13 +477,13 @@ let default_absurd_wrong =
   λ(x : α ty).
     λ(y : α ty).
       match (x, y) with
-      | (Int p1, Int p2) ->
+      | (Nat p1, Nat p2) ->
           payoff1
       | (Bool p1, Bool p2) ->
           payoff2
-      | (Int p1, Bool p2) ->
+      | (Nat p1, Bool p2) ->
           payoff3
-      | (Bool p1, Int p2) ->
+      | (Bool p1, Nat p2) ->
           payoff4
 *)
 let test_absurd payoff1 payoff2 payoff3 payoff4 =
@@ -506,15 +506,15 @@ let test_absurd payoff1 payoff2 payoff3 payoff4 =
     in
 
     (*
-      (Int p1, Int p2) ->
-          use (p1 : Eq(α,int)) in use (p2 : Eq(α,int)) in payoff1
+      (Nat p1, Nat p2) ->
+          use (p1 : Eq(α,nat)) in use (p2 : Eq(α,nat)) in payoff1
      *)
-    let int_int_branch =
+    let nat_nat_branch =
       ptuple [
-          (variant_ty "Int" (pvar "p1"));
-          (variant_ty "Int" (pvar "p2"));
+          (variant_ty "Nat" (pvar "p1"));
+          (variant_ty "Nat" (pvar "p2"));
       ] ,
-      double_use int_datatype int_datatype payoff1
+      double_use nat_datatype nat_datatype payoff1
 
     (*
       (Bool p1, Bool p2) ->
@@ -528,36 +528,36 @@ let test_absurd payoff1 payoff2 payoff3 payoff4 =
       double_use bool_datatype bool_datatype payoff2
 
     (*
-      (Int p1, Bool p2) ->
-          use (p1 : Eq(α,int)) in use (p2 : Eq(α,bool)) in payoff3
+      (Nat p1, Bool p2) ->
+          use (p1 : Eq(α,nat)) in use (p2 : Eq(α,bool)) in payoff3
      *)
-    and int_bool_branch =
+    and nat_bool_branch =
       ptuple [
-          (variant_ty "Int" (pvar "p1"));
+          (variant_ty "Nat" (pvar "p1"));
           (variant_ty "Bool" (pvar "p2"));
       ] ,
-      double_use int_datatype bool_datatype payoff3
+      double_use nat_datatype bool_datatype payoff3
 
     (*
-      (Bool p1, Int p2) ->
-          use (p1 : Eq(α,bool)) in use (p2 : Eq(α,int)) in payoff4
+      (Bool p1, Nat p2) ->
+          use (p1 : Eq(α,bool)) in use (p2 : Eq(α,nat)) in payoff4
      *)
-    and bool_int_branch =
+    and bool_nat_branch =
       ptuple [
           (variant_ty "Bool" (pvar "p1"));
-          (variant_ty "Int" (pvar "p2"));
+          (variant_ty "Nat" (pvar "p2"));
       ] ,
-      double_use bool_datatype int_datatype payoff4
+      double_use bool_datatype nat_datatype payoff4
     in
 
     tyabs alpha @@
     abs "x" (F.TyConstr (Datatype.Type "ty", [F.TyVar alpha])) @@
     abs "y" (F.TyConstr (Datatype.Type "ty", [F.TyVar alpha])) @@
     match_ unit_type (tuple [ var "x"; var "y" ]) [
-      int_int_branch ;
+      nat_nat_branch ;
       bool_bool_branch;
-      int_bool_branch;
-      bool_int_branch;
+      nat_bool_branch;
+      bool_nat_branch;
     ]
 
 (*
@@ -565,13 +565,13 @@ let test_absurd payoff1 payoff2 payoff3 payoff4 =
   λ(x : α ty).
     λ(y : α ty).
       match (x, y) with
-      | (Int p1, Int p2) ->
+      | (Nat p1, Nat p2) ->
           ()
       | (Bool p1, Bool p2) ->
           ()
-      | (Int p1, Bool p2) ->
+      | (Nat p1, Bool p2) ->
           .
-      | (Bool p1, Int p2) ->
+      | (Bool p1, Nat p2) ->
           .
 *)
 (* This example is ok : the two last branches are unreachable. *)
@@ -588,13 +588,13 @@ let test_absurd_ok =
   λ(x : α ty).
     λ(y : α ty).
       match (x, y) with
-      | (Int p1, Int p2) ->
+      | (Nat p1, Nat p2) ->
           ()
       | (Bool p1, Bool p2) ->
           ()
-      | (Int p1, Bool p2) ->
+      | (Nat p1, Bool p2) ->
           ()
-      | (Bool p1, Int p2) ->
+      | (Bool p1, Nat p2) ->
           ()
 *)
 (* This example is ok : the two last branches are unreachable, but it is not
@@ -611,13 +611,13 @@ let test_absurd_ok2 =
   λ(x : α ty).
     λ(y : α ty).
       match (x, y) with
-      | (Int p1, Int p2) ->
+      | (Nat p1, Nat p2) ->
           .
       | (Bool p1, Bool p2) ->
           .
-      | (Int p1, Bool p2) ->
+      | (Nat p1, Bool p2) ->
           .
-      | (Bool p1, Int p2) ->
+      | (Bool p1, Nat p2) ->
           .
 *)
 (* This example is wrong : the first two branches are reachable, i.e. they
@@ -656,9 +656,9 @@ let test_suite =
       test_ok_from_ast "symmetry" Datatype.Env.empty sym;
       test_ok_from_ast "transitivity" Datatype.Env.empty trans;
       test_ok_from_ast "mu under forall" Datatype.Env.empty mu_under_forall;
-      test_ok_from_ast "cast" int_env cast;
+      test_ok_from_ast "cast" nat_env cast;
       test_ok_from_ast "default" small_gadt_env match_gadt_default;
-      test_ok_from_ast "default int" small_gadt_env default_int;
+      test_ok_from_ast "default nat" small_gadt_env default_nat;
       test_ok_from_ast "default bool" small_gadt_env default_bool;
       test_type_error "default absurd wrong" small_gadt_env default_absurd_wrong;
       test_ok_from_ast "pair of gadt" small_gadt_env test_absurd_ok;
-- 
GitLab