# HG changeset patch # User Shinji KONO # Date 1576372706 -32400 # Node ID 107cd3825e6116e19b21aa590e10d67983431bbe # Parent a9cac7960e81e1d5d489e6c3178bdb86b88bab57 ... diff -r a9cac7960e81 -r 107cd3825e61 whileTestGears.agda --- a/whileTestGears.agda Sat Dec 14 21:27:49 2019 +0900 +++ b/whileTestGears.agda Sun Dec 15 10:18:26 2019 +0900 @@ -100,6 +100,10 @@ state2 : (varn env + vari env ≡ c10) → whileTestState c10 env finstate : ((vari env) ≡ c10 ) → whileTestState c10 env +-- +-- openended Env <=> Context +-- + record Context : Set where field c10 : ℕ @@ -108,6 +112,19 @@ open Context +open import Relation.Nullary +open import Relation.Binary + +-- +-- transparency of condition +-- + +whileCondP : Env → Set +whileCondP env = varn env > 0 + +whileDec : (cxt : Context) → Dec (whileCondP (whileDG cxt)) +whileDec cxt = {!!} + whileTestContext : {l : Level} {t : Set l} → Context → (Code : Context → t) → t whileTestContext cxt next = next (record cxt { whileDG = record (whileDG cxt) {varn = c10 cxt ; vari = 0} ; whileCond = {!!} } ) @@ -121,15 +138,11 @@ proof : (cxt : Context) → (varn (whileDG cxt) - 1) + (vari (whileDG cxt) + 1) ≡ c10 cxt proof cxt = {!!} -open import Relation.Nullary -open import Relation.Binary - - {-# TERMINATING #-} -whileLoopStep : {l : Level} {t : Set l} → Env → (next : (e : Env ) → 1 ≤ varn e → t) (exit : (e : Env) → 0 ≡ varn e → t) → t +whileLoopStep : {l : Level} {t : Set l} → Env → (next : (e : Env ) → t) (exit : (e : Env) → t) → t whileLoopStep env next exit with <-cmp 0 (varn env) -whileLoopStep env next exit | tri≈ _ eq _ = exit env eq -whileLoopStep env next exit | tri< gt ¬eq _ = next env gt +whileLoopStep env next exit | tri≈ _ eq _ = exit env +whileLoopStep env next exit | tri< gt ¬eq _ = next record {varn = (varn env) - 1 ; vari = (vari env) + 1} whileLoopStep env next exit | tri> _ _ c = ⊥-elim (m