fact: Definition encode_rule '(q, a) := match trans' M (q, a) with | None => [ ([⦇; #a; encode_state q; ⦈], [⦈; ⦇]); ([#true; #a; encode_state q], [#a; encode_state q]); ([#false; #a; encode_state q], [#a; encode_state q]); ([#a; encode_state q; #true], [#a; encode_state q]); ([#a; encode_state q; #false], [#a; encode_state q])] | Some (q', a', go_left) => [ ([⦇; #a; encode_state q], [⦇; #false; encode_state q'; #a']); ([#true; #a; encode_state q], [#true; encode_state q'; #a']); ([#false; #a; encode_state q], [#false; encode_state q'; #a'])] | Some (q', a', go_right) => [ ([#a; encode_state q; ⦈], [#a'; #false; encode_state q'; ⦈]); ([#a; encode_state q; #true], [#a'; #true; encode_state q']); ([#a; encode_state q; #false], [#a'; #false; encode_state q'])] end.
imports: Undecidability(TM.SBTM TM.Util.SBTM_facts) PeanoNat Lia List ssreflect ssrbool ssrfun