]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/contribs/ng_assembly/freescale/memory_struct.ma
freescale porting, work in progress
[helm.git] / helm / software / matita / contribs / ng_assembly / freescale / memory_struct.ma
diff --git a/helm/software/matita/contribs/ng_assembly/freescale/memory_struct.ma b/helm/software/matita/contribs/ng_assembly/freescale/memory_struct.ma
deleted file mode 100755 (executable)
index 9d6da1a..0000000
+++ /dev/null
@@ -1,624 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-(* ********************************************************************** *)
-(*                          Progetto FreeScale                            *)
-(*                                                                        *)
-(*   Sviluppato da: Cosimo Oliboni, oliboni@cs.unibo.it                   *)
-(*     Cosimo Oliboni, oliboni@cs.unibo.it                                *)
-(*                                                                        *)
-(* ********************************************************************** *)
-
-include "freescale/oct.ma".
-include "freescale/byte8.ma".
-
-(* **************************** *)
-(* TIPI PER I MODULI DI MEMORIA *)
-(* **************************** *)
-
-(* tipi di memoria:RAM/ROM/non installata *)
-ninductive memory_type : Type ≝
-  MEM_READ_ONLY: memory_type
-| MEM_READ_WRITE: memory_type
-| MEM_OUT_OF_BOUND: memory_type.
-
-(* **************** *)
-(* TIPO ARRAY DA 16 *)
-(* **************** *)
-
-(* definizione di un array omogeneo di dimensione 16 *)
-ninductive Array16T (T:Type) : Type ≝
-array_16T : T → T → T → T → T → T → T → T →
-            T → T → T → T → T → T → T → T →
-            Array16T T.
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un getter a matrice sull'array *)
-ndefinition getn_array16T ≝
-λn:exadecim.λT:Type.λp:Array16T T.
- match p with 
-  [ array_16T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15 ⇒
- match n with
-  [ x0 ⇒ e00 | x1 ⇒ e01 | x2 ⇒ e02 | x3 ⇒ e03 | x4 ⇒ e04 | x5 ⇒ e05 | x6 ⇒ e06 | x7 ⇒ e07
-  | x8 ⇒ e08 | x9 ⇒ e09 | xA ⇒ e10 | xB ⇒ e11 | xC ⇒ e12 | xD ⇒ e13 | xE ⇒ e14 | xF ⇒ e15
-  ]].
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un setter a matrice sull'array *)
-ndefinition setn_array16T ≝
-λn:exadecim.λT:Type.λp:Array16T T.λv:T.
- match p with 
-  [ array_16T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15 ⇒
- match n with
-  [ x0 ⇒ array_16T T v   e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x1 ⇒ array_16T T e00 v   e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x2 ⇒ array_16T T e00 e01 v   e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x3 ⇒ array_16T T e00 e01 e02 v   e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x4 ⇒ array_16T T e00 e01 e02 e03 v   e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x5 ⇒ array_16T T e00 e01 e02 e03 e04 v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x6 ⇒ array_16T T e00 e01 e02 e03 e04 e05 v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-  | x7 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v   e08 e09 e10 e11 e12 e13 e14 e15
-  | x8 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v   e09 e10 e11 e12 e13 e14 e15
-  | x9 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v   e10 e11 e12 e13 e14 e15
-  | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v   e11 e12 e13 e14 e15
-  | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v   e12 e13 e14 e15
-  | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 v   e13 e14 e15
-  | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 v   e14 e15
-  | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 v   e15
-  | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 v
-  ]].
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un setter multiplo [m,n] a matrice sull'array *)
-ndefinition setmn_array16T ≝
-λm,n:exadecim.λT:Type.λp:Array16T T.λv:T.
- match p with 
-  [ array_16T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15 ⇒
- match m with
-  [ x0 ⇒ match n with
-   [ x0 ⇒ array_16T T v e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x1 ⇒ array_16T T v v   e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x2 ⇒ array_16T T v v   v   e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x3 ⇒ array_16T T v v   v   v   e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x4 ⇒ array_16T T v v   v   v   v   e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x5 ⇒ array_16T T v v   v   v   v   v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T v v   v   v   v   v   v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T v v   v   v   v   v   v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T v v   v   v   v   v   v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T v v   v   v   v   v   v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T v v   v   v   v   v   v   v   v   v   v   v   v   v   v   v ]
-  | x1 ⇒ match n with
-   [ x0 ⇒ p
-   | x1 ⇒ array_16T T e00 v e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x2 ⇒ array_16T T e00 v v   e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x3 ⇒ array_16T T e00 v v   v   e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x4 ⇒ array_16T T e00 v v   v   v   e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x5 ⇒ array_16T T e00 v v   v   v   v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T e00 v v   v   v   v   v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 v v   v   v   v   v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 v v   v   v   v   v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 v v   v   v   v   v   v   v   v   v   v   v   v   v   v ]
-  | x2 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p
-   | x2 ⇒ array_16T T e00 e01 v e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x3 ⇒ array_16T T e00 e01 v v   e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x4 ⇒ array_16T T e00 e01 v v   v   e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x5 ⇒ array_16T T e00 e01 v v   v   v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T e00 e01 v v   v   v   v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 e01 v v   v   v   v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 v v   v   v   v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 v v   v   v   v   v   v   v   v   v   v   v   v   v ]
-  | x3 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p
-   | x3 ⇒ array_16T T e00 e01 e02 v e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x4 ⇒ array_16T T e00 e01 e02 v v   e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x5 ⇒ array_16T T e00 e01 e02 v v   v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T e00 e01 e02 v v   v   v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 e01 e02 v v   v   v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 v v   v   v   v   v   v   v   v   v   v   v   v ]
-  | x4 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p
-   | x4 ⇒ array_16T T e00 e01 e02 e03 v e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x5 ⇒ array_16T T e00 e01 e02 e03 v v   e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T e00 e01 e02 e03 v v   v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 e01 e02 e03 v v   v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 v v   v   v   v   v   v   v   v   v   v   v ]
-  | x5 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p
-   | x5 ⇒ array_16T T e00 e01 e02 e03 e04 v e06 e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x6 ⇒ array_16T T e00 e01 e02 e03 e04 v v   e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 v v   v   v   v   v   v   v   v   v   v ]
-  | x6 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p
-   | x6 ⇒ array_16T T e00 e01 e02 e03 e04 e05 v e07 e08 e09 e10 e11 e12 e13 e14 e15
-   | x7 ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 v v   v   v   v   v   v   v   v   v ]
-  | x7 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p
-   | x7 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v e08 e09 e10 e11 e12 e13 e14 e15
-   | x8 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 v v   v   v   v   v   v   v   v ]
-  | x8 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v e09 e10 e11 e12 e13 e14 e15
-   | x9 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 v v   v   v   v   v   v   v ]
-  | x9 ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p  | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p
-   | x9 ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v e10 e11 e12 e13 e14 e15
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 v v   v   v   v   v   v ]
-  | xA ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p
-   | xA ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v e11 e12 e13 e14 e15
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v v   e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v v   v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v v   v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v v   v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 v v   v   v   v   v ]
-  | xB ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p | xA ⇒ p
-   | xB ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v e12 e13 e14 e15
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v v   e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v v   v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v v   v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 v v   v   v   v ]
-  | xC ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p | xA ⇒ p | xB ⇒ p
-   | xC ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 v e13 e14 e15
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 v v   e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 v v   v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 v v   v   v ]
-  | xD ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p | xA ⇒ p | xB ⇒ p | xC ⇒ p
-   | xD ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 v e14 e15
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 v v   e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 v v   v ]
-  | xE ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p | xA ⇒ p | xB ⇒ p | xC ⇒ p | xD ⇒ p
-   | xE ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 v e15
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 v v ]
-  | xF ⇒ match n with
-   [ x0 ⇒ p | x1 ⇒ p | x2 ⇒ p | x3 ⇒ p | x4 ⇒ p | x5 ⇒ p | x6 ⇒ p | x7 ⇒ p
-   | x8 ⇒ p | x9 ⇒ p | xA ⇒ p | xB ⇒ p | xC ⇒ p | xD ⇒ p | xE ⇒ p
-   | xF ⇒ array_16T T e00 e01 e02 e03 e04 e05 e06 e07 e08 e09 e10 e11 e12 e13 e14 v ]
-  ]].
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un setter composto [m+1,n-1] a matrice sull'array *)
-(* NB: obbiettivo evitare l'overflow *)
-ndefinition setmn_array16T_succ_pred ≝
-λm,n:exadecim.λT:Type.λp:Array16T T.λv:T.
- match lt_ex m xF with
-  [ true ⇒ match gt_ex n x0 with
-   [ true ⇒ setmn_array16T (succ_ex m) (pred_ex n) T p v
-   | false ⇒ p
-   ]
-  | false ⇒ p
-  ].
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un setter composto [m+1,F] a matrice sull'array *)
-(* NB: obbiettivo evitare l'overflow *)
-ndefinition setmn_array16T_succ ≝
-λm:exadecim.λT:Type.λp:Array16T T.λv:T.
- match lt_ex m xF with
-  [ true ⇒ setmn_array16T (succ_ex m) xF T p v
-  | false ⇒ p
-  ].
-
-(* abbiamo gia' gli esadecimali come tipo induttivo quindi: *)
-(* posso definire un setter composto [0,n-1] a matrice sull'array *)
-(* NB: obbiettivo evitare l'overflow *)
-ndefinition setmn_array16T_pred ≝
-λn:exadecim.λT:Type.λp:Array16T T.λv:T.
- match gt_ex n x0 with
-  [ true ⇒ setmn_array16T x0 (pred_ex n) T p v
-  | false ⇒ p
-  ].
-
-(* ************************** *)
-(* TIPO BYTE COME INSIEME BIT *)
-(* ************************** *)
-
-(* definizione di un byte come 8 bit *)
-ninductive Array8T (T:Type) : Type ≝
-array_8T : T → T → T → T → T → T → T → T →
-           Array8T T.
-
-(* abbiamo gia' gli ottali come tipo induttivo quindi: *)
-(* posso definire un getter a matrice sull'array *)
-ndefinition getn_array8T ≝
-λn:oct.λT:Type.λp:Array8T T.
- match p with 
-  [ array_8T e07 e06 e05 e04 e03 e02 e01 e00 ⇒
- match n with
-  [ o0 ⇒ e00 | o1 ⇒ e01 | o2 ⇒ e02 | o3 ⇒ e03 | o4 ⇒ e04 | o5 ⇒ e05 | o6 ⇒ e06 | o7 ⇒ e07 ]].
-
-(* abbiamo gia' gli ottali come tipo induttivo quindi: *)
-(* posso definire un setter a matrice sull'array *)
-ndefinition setn_array8T ≝
-λn:oct.λT:Type.λp:Array8T T.λv:T.
- match p with 
-  [ array_8T e07 e06 e05 e04 e03 e02 e01 e00 ⇒
- match n with
-  [ o0 ⇒ array_8T T e07 e06 e05 e04 e03 e02 e01 v
-  | o1 ⇒ array_8T T e07 e06 e05 e04 e03 e02 v   e00
-  | o2 ⇒ array_8T T e07 e06 e05 e04 e03 v   e01 e00
-  | o3 ⇒ array_8T T e07 e06 e05 e04 v   e02 e01 e00
-  | o4 ⇒ array_8T T e07 e06 e05 v   e03 e02 e01 e00
-  | o5 ⇒ array_8T T e07 e06 v   e04 e03 e02 e01 e00
-  | o6 ⇒ array_8T T e07 v   e05 e04 e03 e02 e01 e00
-  | o7 ⇒ array_8T T v   e06 e05 e04 e03 e02 e01 e00
-  ]].
-
-(* lettura byte *)
-ndefinition byte8_of_bits ≝
-λp:Array8T bool.
- match p with 
-  [ array_8T e07 e06 e05 e04 e03 e02 e01 e00 ⇒
-   mk_byte8
-   (or_ex (match e07 with [ true ⇒ x8 | false ⇒ x0 ])
-   (or_ex (match e06 with [ true ⇒ x4 | false ⇒ x0 ])
-   (or_ex (match e05 with [ true ⇒ x2 | false ⇒ x0 ])
-          (match e04 with [ true ⇒ x1 | false ⇒ x0 ]))))
-   (or_ex (match e03 with [ true ⇒ x8 | false ⇒ x0 ])
-   (or_ex (match e02 with [ true ⇒ x4 | false ⇒ x0 ])
-   (or_ex (match e01 with [ true ⇒ x2 | false ⇒ x0 ])
-          (match e00 with [ true ⇒ x1 | false ⇒ x0 ])))) ].
-
-(* scrittura byte *)
-ndefinition bits_of_byte8 ≝
-λp:byte8.
- match b8h p with
-  [ x0 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false false false false false false false false
-   | x1 ⇒ array_8T bool false false false false false false false true
-   | x2 ⇒ array_8T bool false false false false false false true  false
-   | x3 ⇒ array_8T bool false false false false false false true  true
-   | x4 ⇒ array_8T bool false false false false false true  false false
-   | x5 ⇒ array_8T bool false false false false false true  false true
-   | x6 ⇒ array_8T bool false false false false false true  true  false
-   | x7 ⇒ array_8T bool false false false false false true  true  true
-   | x8 ⇒ array_8T bool false false false false true  false false false
-   | x9 ⇒ array_8T bool false false false false true  false false true
-   | xA ⇒ array_8T bool false false false false true  false true  false
-   | xB ⇒ array_8T bool false false false false true  false true  true
-   | xC ⇒ array_8T bool false false false false true  true  false false
-   | xD ⇒ array_8T bool false false false false true  true  false true
-   | xE ⇒ array_8T bool false false false false true  true  true  false
-   | xF ⇒ array_8T bool false false false false true  true  true  true ]
-  | x1 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false false false true  false false false false
-   | x1 ⇒ array_8T bool false false false true  false false false true
-   | x2 ⇒ array_8T bool false false false true  false false true  false
-   | x3 ⇒ array_8T bool false false false true  false false true  true
-   | x4 ⇒ array_8T bool false false false true  false true  false false
-   | x5 ⇒ array_8T bool false false false true  false true  false true
-   | x6 ⇒ array_8T bool false false false true  false true  true  false
-   | x7 ⇒ array_8T bool false false false true  false true  true  true
-   | x8 ⇒ array_8T bool false false false true  true  false false false
-   | x9 ⇒ array_8T bool false false false true  true  false false true
-   | xA ⇒ array_8T bool false false false true  true  false true  false
-   | xB ⇒ array_8T bool false false false true  true  false true  true
-   | xC ⇒ array_8T bool false false false true  true  true  false false
-   | xD ⇒ array_8T bool false false false true  true  true  false true
-   | xE ⇒ array_8T bool false false false true  true  true  true  false
-   | xF ⇒ array_8T bool false false false true  true  true  true  true ]
-  | x2 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false false true  false false false false false
-   | x1 ⇒ array_8T bool false false true  false false false false true
-   | x2 ⇒ array_8T bool false false true  false false false true  false
-   | x3 ⇒ array_8T bool false false true  false false false true  true
-   | x4 ⇒ array_8T bool false false true  false false true  false false
-   | x5 ⇒ array_8T bool false false true  false false true  false true
-   | x6 ⇒ array_8T bool false false true  false false true  true  false
-   | x7 ⇒ array_8T bool false false true  false false true  true  true
-   | x8 ⇒ array_8T bool false false true  false true  false false false
-   | x9 ⇒ array_8T bool false false true  false true  false false true
-   | xA ⇒ array_8T bool false false true  false true  false true  false
-   | xB ⇒ array_8T bool false false true  false true  false true  true
-   | xC ⇒ array_8T bool false false true  false true  true  false false
-   | xD ⇒ array_8T bool false false true  false true  true  false true
-   | xE ⇒ array_8T bool false false true  false true  true  true  false
-   | xF ⇒ array_8T bool false false true  false true  true  true  true ]
-  | x3 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false false true  true  false false false false
-   | x1 ⇒ array_8T bool false false true  true  false false false true
-   | x2 ⇒ array_8T bool false false true  true  false false true  false
-   | x3 ⇒ array_8T bool false false true  true  false false true  true
-   | x4 ⇒ array_8T bool false false true  true  false true  false false
-   | x5 ⇒ array_8T bool false false true  true  false true  false true
-   | x6 ⇒ array_8T bool false false true  true  false true  true  false
-   | x7 ⇒ array_8T bool false false true  true  false true  true  true
-   | x8 ⇒ array_8T bool false false true  true  true  false false false
-   | x9 ⇒ array_8T bool false false true  true  true  false false true
-   | xA ⇒ array_8T bool false false true  true  true  false true  false
-   | xB ⇒ array_8T bool false false true  true  true  false true  true
-   | xC ⇒ array_8T bool false false true  true  true  true  false false
-   | xD ⇒ array_8T bool false false true  true  true  true  false true
-   | xE ⇒ array_8T bool false false true  true  true  true  true  false
-   | xF ⇒ array_8T bool false false true  true  true  true  true  true ]
-  | x4 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false true  false false false false false false
-   | x1 ⇒ array_8T bool false true  false false false false false true
-   | x2 ⇒ array_8T bool false true  false false false false true  false
-   | x3 ⇒ array_8T bool false true  false false false false true  true
-   | x4 ⇒ array_8T bool false true  false false false true  false false
-   | x5 ⇒ array_8T bool false true  false false false true  false true
-   | x6 ⇒ array_8T bool false true  false false false true  true  false
-   | x7 ⇒ array_8T bool false true  false false false true  true  true
-   | x8 ⇒ array_8T bool false true  false false true  false false false
-   | x9 ⇒ array_8T bool false true  false false true  false false true
-   | xA ⇒ array_8T bool false true  false false true  false true  false
-   | xB ⇒ array_8T bool false true  false false true  false true  true
-   | xC ⇒ array_8T bool false true  false false true  true  false false
-   | xD ⇒ array_8T bool false true  false false true  true  false true
-   | xE ⇒ array_8T bool false true  false false true  true  true  false
-   | xF ⇒ array_8T bool false true  false false true  true  true  true ]
-  | x5 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false true  false true  false false false false
-   | x1 ⇒ array_8T bool false true  false true  false false false true
-   | x2 ⇒ array_8T bool false true  false true  false false true  false
-   | x3 ⇒ array_8T bool false true  false true  false false true  true
-   | x4 ⇒ array_8T bool false true  false true  false true  false false
-   | x5 ⇒ array_8T bool false true  false true  false true  false true
-   | x6 ⇒ array_8T bool false true  false true  false true  true  false
-   | x7 ⇒ array_8T bool false true  false true  false true  true  true
-   | x8 ⇒ array_8T bool false true  false true  true  false false false
-   | x9 ⇒ array_8T bool false true  false true  true  false false true
-   | xA ⇒ array_8T bool false true  false true  true  false true  false
-   | xB ⇒ array_8T bool false true  false true  true  false true  true
-   | xC ⇒ array_8T bool false true  false true  true  true  false false
-   | xD ⇒ array_8T bool false true  false true  true  true  false true
-   | xE ⇒ array_8T bool false true  false true  true  true  true  false
-   | xF ⇒ array_8T bool false true  false true  true  true  true  true ]
-  | x6 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false true  true  false false false false false
-   | x1 ⇒ array_8T bool false true  true  false false false false true
-   | x2 ⇒ array_8T bool false true  true  false false false true  false
-   | x3 ⇒ array_8T bool false true  true  false false false true  true
-   | x4 ⇒ array_8T bool false true  true  false false true  false false
-   | x5 ⇒ array_8T bool false true  true  false false true  false true
-   | x6 ⇒ array_8T bool false true  true  false false true  true  false
-   | x7 ⇒ array_8T bool false true  true  false false true  true  true
-   | x8 ⇒ array_8T bool false true  true  false true  false false false
-   | x9 ⇒ array_8T bool false true  true  false true  false false true
-   | xA ⇒ array_8T bool false true  true  false true  false true  false
-   | xB ⇒ array_8T bool false true  true  false true  false true  true
-   | xC ⇒ array_8T bool false true  true  false true  true  false false
-   | xD ⇒ array_8T bool false true  true  false true  true  false true
-   | xE ⇒ array_8T bool false true  true  false true  true  true  false
-   | xF ⇒ array_8T bool false true  true  false true  true  true  true ]
-  | x7 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool false true  true  true  false false false false
-   | x1 ⇒ array_8T bool false true  true  true  false false false true
-   | x2 ⇒ array_8T bool false true  true  true  false false true  false
-   | x3 ⇒ array_8T bool false true  true  true  false false true  true
-   | x4 ⇒ array_8T bool false true  true  true  false true  false false
-   | x5 ⇒ array_8T bool false true  true  true  false true  false true
-   | x6 ⇒ array_8T bool false true  true  true  false true  true  false
-   | x7 ⇒ array_8T bool false true  true  true  false true  true  true
-   | x8 ⇒ array_8T bool false true  true  true  true  false false false
-   | x9 ⇒ array_8T bool false true  true  true  true  false false true
-   | xA ⇒ array_8T bool false true  true  true  true  false true  false
-   | xB ⇒ array_8T bool false true  true  true  true  false true  true
-   | xC ⇒ array_8T bool false true  true  true  true  true  false false
-   | xD ⇒ array_8T bool false true  true  true  true  true  false true
-   | xE ⇒ array_8T bool false true  true  true  true  true  true  false
-   | xF ⇒ array_8T bool false true  true  true  true  true  true  true ]
-  | x8 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  false false false false false false false
-   | x1 ⇒ array_8T bool true  false false false false false false true
-   | x2 ⇒ array_8T bool true  false false false false false true  false
-   | x3 ⇒ array_8T bool true  false false false false false true  true
-   | x4 ⇒ array_8T bool true  false false false false true  false false
-   | x5 ⇒ array_8T bool true  false false false false true  false true
-   | x6 ⇒ array_8T bool true  false false false false true  true  false
-   | x7 ⇒ array_8T bool true  false false false false true  true  true
-   | x8 ⇒ array_8T bool true  false false false true  false false false
-   | x9 ⇒ array_8T bool true  false false false true  false false true
-   | xA ⇒ array_8T bool true  false false false true  false true  false
-   | xB ⇒ array_8T bool true  false false false true  false true  true
-   | xC ⇒ array_8T bool true  false false false true  true  false false
-   | xD ⇒ array_8T bool true  false false false true  true  false true
-   | xE ⇒ array_8T bool true  false false false true  true  true  false
-   | xF ⇒ array_8T bool true  false false false true  true  true  true ]
-  | x9 ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  false false true  false false false false
-   | x1 ⇒ array_8T bool true  false false true  false false false true
-   | x2 ⇒ array_8T bool true  false false true  false false true  false
-   | x3 ⇒ array_8T bool true  false false true  false false true  true
-   | x4 ⇒ array_8T bool true  false false true  false true  false false
-   | x5 ⇒ array_8T bool true  false false true  false true  false true
-   | x6 ⇒ array_8T bool true  false false true  false true  true  false
-   | x7 ⇒ array_8T bool true  false false true  false true  true  true
-   | x8 ⇒ array_8T bool true  false false true  true  false false false
-   | x9 ⇒ array_8T bool true  false false true  true  false false true
-   | xA ⇒ array_8T bool true  false false true  true  false true  false
-   | xB ⇒ array_8T bool true  false false true  true  false true  true
-   | xC ⇒ array_8T bool true  false false true  true  true  false false
-   | xD ⇒ array_8T bool true  false false true  true  true  false true
-   | xE ⇒ array_8T bool true  false false true  true  true  true  false
-   | xF ⇒ array_8T bool true  false false true  true  true  true  true ]
-  | xA ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  false true  false false false false false
-   | x1 ⇒ array_8T bool true  false true  false false false false true
-   | x2 ⇒ array_8T bool true  false true  false false false true  false
-   | x3 ⇒ array_8T bool true  false true  false false false true  true
-   | x4 ⇒ array_8T bool true  false true  false false true  false false
-   | x5 ⇒ array_8T bool true  false true  false false true  false true
-   | x6 ⇒ array_8T bool true  false true  false false true  true  false
-   | x7 ⇒ array_8T bool true  false true  false false true  true  true
-   | x8 ⇒ array_8T bool true  false true  false true  false false false
-   | x9 ⇒ array_8T bool true  false true  false true  false false true
-   | xA ⇒ array_8T bool true  false true  false true  false true  false
-   | xB ⇒ array_8T bool true  false true  false true  false true  true
-   | xC ⇒ array_8T bool true  false true  false true  true  false false
-   | xD ⇒ array_8T bool true  false true  false true  true  false true
-   | xE ⇒ array_8T bool true  false true  false true  true  true  false
-   | xF ⇒ array_8T bool true  false true  false true  true  true  true ]
-  | xB ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  false true  true  false false false false
-   | x1 ⇒ array_8T bool true  false true  true  false false false true
-   | x2 ⇒ array_8T bool true  false true  true  false false true  false
-   | x3 ⇒ array_8T bool true  false true  true  false false true  true
-   | x4 ⇒ array_8T bool true  false true  true  false true  false false
-   | x5 ⇒ array_8T bool true  false true  true  false true  false true
-   | x6 ⇒ array_8T bool true  false true  true  false true  true  false
-   | x7 ⇒ array_8T bool true  false true  true  false true  true  true
-   | x8 ⇒ array_8T bool true  false true  true  true  false false false
-   | x9 ⇒ array_8T bool true  false true  true  true  false false true
-   | xA ⇒ array_8T bool true  false true  true  true  false true  false
-   | xB ⇒ array_8T bool true  false true  true  true  false true  true
-   | xC ⇒ array_8T bool true  false true  true  true  true  false false
-   | xD ⇒ array_8T bool true  false true  true  true  true  false true
-   | xE ⇒ array_8T bool true  false true  true  true  true  true  false
-   | xF ⇒ array_8T bool true  false true  true  true  true  true  true ]
-  | xC ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  true  false false false false false false
-   | x1 ⇒ array_8T bool true  true  false false false false false true
-   | x2 ⇒ array_8T bool true  true  false false false false true  false
-   | x3 ⇒ array_8T bool true  true  false false false false true  true
-   | x4 ⇒ array_8T bool true  true  false false false true  false false
-   | x5 ⇒ array_8T bool true  true  false false false true  false true
-   | x6 ⇒ array_8T bool true  true  false false false true  true  false
-   | x7 ⇒ array_8T bool true  true  false false false true  true  true
-   | x8 ⇒ array_8T bool true  true  false false true  false false false
-   | x9 ⇒ array_8T bool true  true  false false true  false false true
-   | xA ⇒ array_8T bool true  true  false false true  false true  false
-   | xB ⇒ array_8T bool true  true  false false true  false true  true
-   | xC ⇒ array_8T bool true  true  false false true  true  false false
-   | xD ⇒ array_8T bool true  true  false false true  true  false true
-   | xE ⇒ array_8T bool true  true  false false true  true  true  false
-   | xF ⇒ array_8T bool true  true  false false true  true  true  true ]
-  | xD ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  true  false true  false false false false
-   | x1 ⇒ array_8T bool true  true  false true  false false false true
-   | x2 ⇒ array_8T bool true  true  false true  false false true  false
-   | x3 ⇒ array_8T bool true  true  false true  false false true  true
-   | x4 ⇒ array_8T bool true  true  false true  false true  false false
-   | x5 ⇒ array_8T bool true  true  false true  false true  false true
-   | x6 ⇒ array_8T bool true  true  false true  false true  true  false
-   | x7 ⇒ array_8T bool true  true  false true  false true  true  true
-   | x8 ⇒ array_8T bool true  true  false true  true  false false false
-   | x9 ⇒ array_8T bool true  true  false true  true  false false true
-   | xA ⇒ array_8T bool true  true  false true  true  false true  false
-   | xB ⇒ array_8T bool true  true  false true  true  false true  true
-   | xC ⇒ array_8T bool true  true  false true  true  true  false false
-   | xD ⇒ array_8T bool true  true  false true  true  true  false true
-   | xE ⇒ array_8T bool true  true  false true  true  true  true  false
-   | xF ⇒ array_8T bool true  true  false true  true  true  true  true ]
-  | xE ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  true  true  false false false false false
-   | x1 ⇒ array_8T bool true  true  true  false false false false true
-   | x2 ⇒ array_8T bool true  true  true  false false false true  false
-   | x3 ⇒ array_8T bool true  true  true  false false false true  true
-   | x4 ⇒ array_8T bool true  true  true  false false true  false false
-   | x5 ⇒ array_8T bool true  true  true  false false true  false true
-   | x6 ⇒ array_8T bool true  true  true  false false true  true  false
-   | x7 ⇒ array_8T bool true  true  true  false false true  true  true
-   | x8 ⇒ array_8T bool true  true  true  false true  false false false
-   | x9 ⇒ array_8T bool true  true  true  false true  false false true
-   | xA ⇒ array_8T bool true  true  true  false true  false true  false
-   | xB ⇒ array_8T bool true  true  true  false true  false true  true
-   | xC ⇒ array_8T bool true  true  true  false true  true  false false
-   | xD ⇒ array_8T bool true  true  true  false true  true  false true
-   | xE ⇒ array_8T bool true  true  true  false true  true  true  false
-   | xF ⇒ array_8T bool true  true  true  false true  true  true  true ]
-  | xF ⇒ match b8l p with
-   [ x0 ⇒ array_8T bool true  true  true  true  false false false false
-   | x1 ⇒ array_8T bool true  true  true  true  false false false true
-   | x2 ⇒ array_8T bool true  true  true  true  false false true  false
-   | x3 ⇒ array_8T bool true  true  true  true  false false true  true
-   | x4 ⇒ array_8T bool true  true  true  true  false true  false false
-   | x5 ⇒ array_8T bool true  true  true  true  false true  false true
-   | x6 ⇒ array_8T bool true  true  true  true  false true  true  false
-   | x7 ⇒ array_8T bool true  true  true  true  false true  true  true
-   | x8 ⇒ array_8T bool true  true  true  true  true  false false false
-   | x9 ⇒ array_8T bool true  true  true  true  true  false false true
-   | xA ⇒ array_8T bool true  true  true  true  true  false true  false
-   | xB ⇒ array_8T bool true  true  true  true  true  false true  true
-   | xC ⇒ array_8T bool true  true  true  true  true  true  false false
-   | xD ⇒ array_8T bool true  true  true  true  true  true  false true
-   | xE ⇒ array_8T bool true  true  true  true  true  true  true  false
-   | xF ⇒ array_8T bool true  true  true  true  true  true  true  true ]
-  ].