-
Notifications
You must be signed in to change notification settings - Fork 30
/
Models_Equivalent.v
43 lines (41 loc) · 1.53 KB
/
Models_Equivalent.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Require Import
Undecidability.L.L
Undecidability.TM.TM
Undecidability.StackMachines.BSM
Undecidability.MinskyMachines.MM
Undecidability.FRACTRAN.FRACTRAN
Undecidability.H10.H10
Undecidability.MuRec.MuRec
Undecidability.MinskyMachines.MMA.
From Undecidability Require Import
TM_computable_to_BSM_computable
BSM_computable_to_MM_computable
MM_computable_to_FRACTRAN_computable
FRACTRAN_computable_to_Diophantine
Diophantine
Diophantine_to_MuRec_computable
MuRec_computable_to_L_computable
L_computable_to_TM_computable
L_computable_to_MMA_computable
MMA_computable_to_TM_computable.
Theorem equivalence {k} (R : Vector.t nat k -> nat -> Prop) :
(TM_computable R -> BSM_computable R) /\
(BSM_computable R -> MM_computable R) /\
(MM_computable R -> FRACTRAN_computable R) /\
(FRACTRAN_computable R -> Diophantine' R /\ functional R) /\
(Diophantine' R /\ functional R -> MuRec_computable R) /\
(MuRec_computable R -> L_computable R) /\
(L_computable R -> MMA_computable R) /\
(MMA_computable R -> TM_computable R).
Proof.
repeat split.
- apply TM_computable_to_BSM_computable.
- apply BSM_computable_to_MM_computable.
- apply MM_computable_to_FRACTRAN_computable.
- eapply FRACTRAN_computable_to_Diophantine; assumption.
- intros ? ? ? ? ?. eapply FRACTRAN_computable.FRACTRAN_computable_functional; eauto.
- intros []. eapply Diophantine_to_MuRec_computable; eauto.
- apply MuRec_computable_to_L_computable.
- apply L_computable_to_MMA_computable.
- apply MMA_computable_to_TM_computable.
Qed.