changeset 7:e7d6bdb6039d

fix test1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 14 Dec 2018 22:35:38 +0900
parents 28e80739eed6
children e4f087b823d4
files whileTestGears.agda whileTestPrim.agda
diffstat 2 files changed, 11 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/whileTestGears.agda	Fri Dec 14 22:06:24 2018 +0900
+++ b/whileTestGears.agda	Fri Dec 14 22:35:38 2018 +0900
@@ -111,14 +111,7 @@
     where
       env1 = record {varn = (varn  env) - 1 ; vari = (vari env) + 1}
       proof3 : varn env1 + vari env1 ≡ 10
-      proof3 = let open ≡-Reasoning  in
-          begin 
-            varn env1 + vari env1
-          ≡⟨⟩
-            (varn env - 1) + (vari env + 1)
-          ≡⟨ {!!} ⟩
-            10
-          ∎
+      proof3 = {!!}
 
 
 conversion1 : {l : Level} {t : Set l } → (env : Env) -> ((vari env) ≡ 0) ∧ ((varn env) ≡ 10)
--- a/whileTestPrim.agda	Fri Dec 14 22:06:24 2018 +0900
+++ b/whileTestPrim.agda	Fri Dec 14 22:35:38 2018 +0900
@@ -34,7 +34,7 @@
 (suc x) - (suc y)  = x - y
 
 lt : ℕ -> ℕ -> Bool
-lt x y with (suc x ) ≤? y
+lt x y with suc x  ≤? y
 lt x y | yes p = true
 lt x y | no ¬p = false
 
@@ -47,7 +47,7 @@
 program = 
     Seq ( PComm (λ env → record env {varn = 10}))
     $ Seq ( PComm (λ env → record env {vari = 0}))
-    $ While (λ env → lt (varn env ) zero )
+    $ While (λ env → lt zero (varn env ) )
       (Seq (PComm (λ env → record env {vari = ((vari env) + 1)} ))
         $ PComm (λ env → record env {varn = ((varn env) - 1)} ))
 
@@ -72,6 +72,9 @@
 test1 : Env
 test1 =  interpret ( record { vari = 0  ; varn = 0 } ) program
 
+tests : Env
+tests =  interpret ( record { vari = 0  ; varn = 0 } ) simple
+
 
 empty-case : (env : Env) → (( λ e → true ) env ) ≡ true 
 empty-case _ = refl
@@ -161,8 +164,8 @@
     $ SeqRule {λ e →  Equal (varn e) 10} ( PrimRule lemma1   )
     $ WeakeningRule {λ e → (Equal (varn e) 10) ∧ (Equal (vari e) 0)}  lemma2 (
             WhileRule {_} {λ e → Equal ((varn e) + (vari e)) 10}
-            $ SeqRule (PrimRule {λ e →  whileInv e  ∧ lt (varn e) zero } lemma3)
-                     $ PrimRule {whileInv'} {_} {whileInv}  lemma4  ) lemma5
+            $ SeqRule (PrimRule {λ e →  whileInv e  ∧ lt zero (varn e) } lemma3 )
+                     $ PrimRule {whileInv'} {_} {whileInv}  lemma4 ) lemma5
   where
      lemma1 : Axiom stmt1Cond (λ env → record { varn = varn env ; vari = 0 }) stmt2Cond
      lemma1 env with stmt1Cond env
@@ -174,11 +177,11 @@
      lemma2 env | false | true = refl
      lemma2 env | true | true = refl
      lemma2 env | true | false = {!!}
-     lemma3 : Axiom (whileInv /\ (λ env → lt (varn env) zero)) (λ env → record { varn = varn env ; vari = vari env + 1 }) whileInv'
+     lemma3 :   Axiom (λ e → whileInv e ∧ lt zero (varn e)) (λ env → record { varn = varn env ; vari = vari env + 1 }) whileInv'
      lemma3 = {!!}
-     lemma4 :  Axiom whileInv' (λ env → record { varn = varn env - 1 ; vari = vari env }) whileInv
+     lemma4 :   Axiom whileInv' (λ env → record { varn = varn env - 1 ; vari = vari env }) whileInv 
      lemma4 = {!!}
-     lemma5 :  Tautology (whileInv /\ neg (λ z → lt (varn z) zero)) termCond
+     lemma5 :   Tautology ((λ e → Equal (varn e + vari e) 10) /\ neg (λ z → lt zero (varn z))) termCond
      lemma5 = {!!}