Replace the two-bank machine with a K-bank ring, prove its reproduction in Rocq, and revise the paper
a9ea017 Download rocq/NetMain.v from phanerozoic/threshold-computers: direct link, hf CLI and curl.
- Browser
- Download file 1.41 kB
-
https://huggingface.co/phanerozoic/threshold-computers/resolve/main/rocq/NetMain.v
- Command line
-
hf download hf://phanerozoic/threshold-computers/rocq/NetMain.v
-
curl -L -o NetMain.v https://huggingface.co/phanerozoic/threshold-computers/resolve/main/rocq/NetMain.v
1.41 kB
| (* The threshold network itself: started from the bits of a start state, its orbit holds the bits of the | |
| machine's state at every step, so it carries every generation of the organism, and from the K-th | |
| generation on it repeats every K generations. *) | |
| From Stdlib Require Import List Bool Arith ZArith Lia. | |
| Import ListNotations. | |
| From TH Require Import TwoHead Organism PassCheck Run Main PhysSem PhysMain. | |
| Section NetRing. | |
| Variables (K S0 L : nat). | |
| Hypotheses (HK : 2 <= K) (HS : G <= S0) (HL : length desc <= L). | |
| Theorem network_reproduces : forall x0, start K S0 L x0 -> forall g, 1 <= g -> | |
| netiter 6 K S0 L (g * T S0) (encode 6 K S0 L x0) = encode 6 K S0 L (itern 6 K S0 L (g * T S0) x0) | |
| /\ after K S0 L x0 g (itern 6 K S0 L (g * T S0) x0). | |
| Proof. | |
| intros x0 Hs g Hg. split; [|exact (reproduces K S0 L HK HS HL x0 Hs g Hg)]. | |
| destruct Hs as (Hf & _). | |
| exact (network_orbit 6 K S0 L (g * T S0) x0 ltac:(lia) HK (HS1' K S0 L HK HS HL) (HL1 K S0 L HK HS HL) Hf). | |
| Qed. | |
| Theorem network_periodic : forall x0, start K S0 L x0 -> forall g, K <= g -> | |
| netiter 6 K S0 L ((g + K) * T S0) (encode 6 K S0 L x0) = netiter 6 K S0 L (g * T S0) (encode 6 K S0 L x0). | |
| Proof. | |
| intros x0 Hs g Hg. pose proof Hs as (Hf & _). | |
| rewrite !(network_orbit 6 K S0 L _ x0 ltac:(lia) HK (HS1' K S0 L HK HS HL) (HL1 K S0 L HK HS HL) Hf). | |
| rewrite (periodic K S0 L HK HS HL x0 Hs g Hg). reflexivity. | |
| Qed. | |
| End NetRing. | |