From 2df6c35032e7c99cfb734d110a91ddf0f39601ad Mon Sep 17 00:00:00 2001 From: Andrea Asperti <andrea.asperti@unibo.it> Date: Mon, 28 May 2012 14:02:42 +0000 Subject: [PATCH] porting move_tape.ma --- .../matita/lib/turing/universal/move_tape.ma | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/matita/matita/lib/turing/universal/move_tape.ma b/matita/matita/lib/turing/universal/move_tape.ma index fed33bfa8..cd8a87c5f 100644 --- a/matita/matita/lib/turing/universal/move_tape.ma +++ b/matita/matita/lib/turing/universal/move_tape.ma @@ -18,14 +18,13 @@ definition init_cell_states â initN 2. definition ics0 : init_cell_states â mk_Sig ?? 0 (leb_true_to_le 1 2 (refl â¦)). definition ics1 : init_cell_states â mk_Sig ?? 1 (leb_true_to_le 2 2 (refl â¦)). -d definition init_cell â mk_TM STape init_cell_states (λp.let â©q,a⪠â p in match pi1 ⦠q with [ O â match a with [ None â â©ics1, Some ? â©â©null,falseâª,Nâªâª - | Some _ â â©1, None ?⪠] + | Some _ â â©ics1, None ?⪠] | S _ â â©ics1,None ?⪠]) ics0 (λq.q == ics1). @@ -37,27 +36,33 @@ axiom sem_init_cell : Realize ? init_cell R_init_cell. definition swap_states : FinSet â FinSet â λalpha:FinSet.FinProd (initN 4) alpha. +definition swap0 : initN 4 â mk_Sig ?? 0 (leb_true_to_le 1 4 (refl â¦)). +definition swap1 : initN 4 â mk_Sig ?? 1 (leb_true_to_le 2 4 (refl â¦)). +definition swap2 : initN 4 â mk_Sig ?? 2 (leb_true_to_le 3 4 (refl â¦)). +definition swap3 : initN 4 â mk_Sig ?? 3 (leb_true_to_le 4 4 (refl â¦)). + definition swap â λalpha:FinSet.λd:alpha. - mk_TM alpha (mcl_states alpha) + mk_TM alpha (swap_states alpha) (λp.let â©q,a⪠â p in let â©q',b⪠â q in + let q' â pi1 nat (λi.i<4) q' in (* perche' devo passare il predicato ??? *) match a with - [ None â â©â©3,dâª,None ?⪠+ [ None â â©â©swap3,dâª,None ?⪠| Some a' â match q' with [ O â (* qinit *) - â©â©1,a'âª,Some ? â©a',Râªâª + â©â©swap1,a'âª,Some ? â©a',Râªâª | S q' â match q' with [ O â (* q1 *) - â©â©2,a'âª,Some ? â©b,Lâªâª + â©â©swap2,a'âª,Some ? â©b,Lâªâª | S q' â match q' with [ O â (* q2 *) - â©â©3,dâª,Some ? â©b,Nâªâª + â©â©swap3,dâª,Some ? â©b,Nâªâª | S _â (* qacc *) - â©â©3,dâª,None ?⪠] ] ] ]) - â©0,d⪠- (λq.let â©q',a⪠â q in q' == 3). + â©â©swap3,dâª,None ?⪠] ] ] ]) + â©swap0,d⪠+ (λq.let â©q',a⪠â q in q' == swap3). definition R_swap â λalpha,t1,t2. -- 2.39.5