Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Qed failing after compute

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Qed failing after compute


Chronological Thread 
  • From: Maxime Buyse <maxime.buyse AT prover.com>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: [Coq-Club] Qed failing after compute
  • Date: Thu, 17 Nov 2022 15:14:42 +0000
  • Accept-language: en-150, fr-FR, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prover.com; dmarc=pass action=none header.from=prover.com; dkim=pass header.d=prover.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OqWGbWy7V4Okq14gPUXWCi28Gw8aEiI3+afIQnF3EjQ=; b=nuX8axFW8gQb+ESuhmvDbP+/eScvygeo4iTedV6/FwqBkWHLWyTwxY6oteLEK6ii+Fj1yOjxy0sPN44vgRof9g2narHw5/EzZWr1lgAByptD2jnXTo7OCh9GCLYCWhfx8EFD4fgR3+kJwSV9eCM1v1uwdsmMW4Vqh00xAJwE53r8MWzFk+a+LAUz8tsQGs5nMNuZX3eAwRl+r/1fwW/NXIX/32m7CSEMNjPp6gY38PctOpOTnjAS3zlXCegFFwG6mxRuHTvlZSkKXPnVfb9SqBgL7Q5FmO6BlQkvIGhXNSe31XUwqoSdDVZ3LAvFNTrIvHTv1+N5UTXSkdGonmnzGg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MFHHTYrzPoXtdw66bgsstX6YSp03+6tObkK8obDyglSzGvq5Hj0SW3F5tF5vvSmcILsDSTHUYF158wrEmIcILf+eks9sD5tr7OZtyEBGMjRY3oeazOKTCLTGOj4aWTSuskCc+0lh8TuGV7nMshcFh5W6SWaHtH57ALdGmiKUFuwHljKd84A1zHQLdHabgU3lzl0UXToEzpEJBiI/C/qeFdxVqS9qg4qmExE5bRU+/ekNyjulbJDLGrgE2dOo1I7c8kX3RIV/Pos/veVYC5cStn6NyESCXBpA+kTDCm4kXAuhOlEUEW6bYpjzJCVB5Pt3H2F1eoVJXYvnWgSGJn2DXw==
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=maxime.buyse AT prover.com; spf=Pass smtp.mailfrom=maxime.buyse AT prover.com; spf=Pass smtp.helo=postmaster AT EUR05-DB8-obe.outbound.protection.outlook.com
  • Ironport-data: A9a23:lS5qh6ncPIJpDHAtNXTMUADo5gztLURdPkR7XQ2eYbSJt1+Wr1Gzt xIeWTrUM6qOa2f9eIsjYI/k8hsH68eAmINgHFM++CA8EFtH+JHPbTi7BhepbnnKdqUvb2o+s p5AMoGYRCwQZiWBzvt4GuG59RGQ7YnRGvymTres1hlZHWdMUD0mhQ9oh9k3i4tphcnRKw6Ws LsemeWGULOe82MyYzx8B56r8ks15q2r4WxA5DTSWNgS1LPgvylNZH4gDfrpR5fIatE8NvK3Q e/F0Ia48gvxl/v6Io7Nfh7TKyXmc5aKVeS8oiI+t5uK3nCukhcPPpMTb5LwX6v4ZwKhxLidw P0V3XC5pJxA0qfkwIzxWDEAe81y0DEvFBYq7hFTvOTKp3AqfUcAzN1CEUAvNKsy8d0uIlhUr PgzC2FTQB2c0rfeLLKTEoGAh+wOEfOzYcYzkCElyjvUS/E7XZrEXqPGo8dC2ys9jdxPGvCYY NcFbT1ob1LLZBgn1lU/VMp4xb/3wCOnNWQB9zp5poJvi4TX5Al4wLnoPZzfZ82RSO1NhEGGq 3iA9GP8av0fHIDHkWfarij87gPJtXykYsVONZm4zdN3uUaV40k4OB5RcFTu9JFVjWblAokEc xVOksY0loA581XuRd3gVTWjsXuct1gdXcBRGqs08mmwJrH85g+YAi0IRG5MdcZ+6cgwH2Vzi RmOgs/jAiFpvPuNU3WB+7yIrDS0fy8IMWsFYixCRgwAizX+nG0tpj7ST89qNoS+tYTWICupx xup/XYQiqpG2KbnyJ6H1VzAhjutoL3AQQg0+hjbUwqZAuVRNN7Ni2uAuQiz0BpQEGqKZgTa5 yNby6By+MhLU8vQxXTlrPAlRunB2hqTDNHLqX9Cd3XL3xiw8Xqie+i8CxlSfB0B3iosXTLoZ lTPtBk52XO+FH6jbKsyb4jhBtkwlfXnE468D6+SacdSaJ9scgPB5DtpeUObw2Hqlg4rjL07P pCYN82rCB726JiLLhLpFo/xMpdylkjSIF8/o7imknxLNpLDOBaopU8tagfmUwzAxPrsTP/p2 9heLdCW7B5UTffzZCLamaZKcw5acyJgWcqp85UKHgJmHuaAMDFwYxM26eNwE7GJY4wMx48kA 1nhBB8AmQql2RUr1y3TMCo7Oe+HsWlDQYITZnV3Zg7xgRDPkK6q7awFcIAwc6Vv/f5+1/Mcc hX2U5ToPxi7cRyeo251RcCl8uRKLU337SrTYXbNSGVhLvZIGVaVkve6JVGH3HdVUUKKWT4W+ ODIOvXzGsZYGGyPza/+NJqS8r9GlSJMxLwtAhaTeoM7lYeF2NECFhEdR8Qfe6kkQSgvDBPDv +pPKUZC/7v+sMUu/cPXhKuJiY6sHqEsVgBZBmTXp/L+fyXT4mPpk8cKXfeqbALtcjr+2JyjQ uFJkND6EvkMx2hRv6RGTr1E8KMZ5vnUnYF88DhKJnvwQm6QOutSGUXehchrnY9R94BdojqzC x6u+MEFGLCnO/HFMV82JSg6ZeHSj8MkuyTjt6UpAUTl5R1Y+KiMflVSMiKt1g1cDupRG6E0z dgxvPU571SEtSMrFdKdnwZo92ioBV4RYZUN7501LtfitVs29wtkf5fZNB7T3LiOTNd9am8RP T6egfv5tYR2n0btXSI6KinQ4LB7m58LhRFtyW0CLXSvnv7upKc+/D9VwAQNYjVl9Dd1+MMtB TEzLGxwH7uEwBlwjssaX2yMJRBINCfExmPPkWk2hE/rZGj2cFyVN2AsG/e/zGZA+UJmQzVr1 rW5ymHkbDXUQP/MzhYCAXBClfiyYuFypyvjmd+mFfurB5MVQyToqY7waHsqqynIO9IQhkrGr slI4up1V7zfMAgOqZYaEKif76wbEzqfFVxBQNZg3aIHJn7dczeMwgqzK1i9V8dOBv7S+2q6N pBeHd1OXBGAyyq+lDAXKqoSKbtSnvRyxt49Vp70BGwB6Z2zkyFItc/Oyy3Am2MbedVivsIjI If3dTjZMGixh2NRqlDdvvt/JWu0TtkVVjLShNnv3r0yKKsCl+VwfWUZ8Li+5SyVOTQ62SOkh lrIYquOwtFyzYhpoZDXLZxCIAeKePfTT+WD9T6hv+teNe3vNdj8jCJLi13FETkPA54vdYVWr 4mdiP/2w0LPg5guWU/7hZSqNvdE9OeybsVtI+P1K3hgoxW5fePR/yEu2jycFs1IougA+MWXf QqyM/WtR/VIRNxYlSVnVA4GGilMFoDyP/7sijOjpa6XFylHgBDmLcymx1Dtf2p0Zi8FALygK w7W6tKFxMFUk5RIPzAAX8pZOp5fJETxfIcbbPjziGW8IkjzpWidq5zOsxYEwhPaOEmuScrVz 8rMeUnjSU6UpqrN8uB8j6VzmR8yV1NWnug6exMmye5c0jyVIjYPErUADM8gFJpRry3V0aP4b hHraE8JK330fRZAQCXGzOXTZCWtLc1QBY6hPR0sxV2eVAmuDoDZALdByDZp000rRhTdltOYO fMs0VyuGCjozp9QELNZorTxhOp83frVy04Z4U23wYS4Hx8aBq5Mz3B7WhZEUSvcCczWiUHXP i4PSHtZRF2gA1vEeSq6l6W5xDlC1N8u89kpUctL6Pvigd3GicFqmLj4Mey11aAfZsMXIrJIX WnwW2aG/2GR3DoUpLctvNUqx6RzDJpn2+CkebT7S1R6c76Yswwa0wEqxELjj/3OPCZHCVTDm yPq6H87bKhAAF4Ew6WYkG3l5LooOk/hzFj1YMrXvSXBjxEjidPefnBGCe49xY7Y88DegqmTf NvegIt9bbFbWPsIaASSbsgmm2E=
  • Ironport-hdrordr: A9a23:jQ6/XKvOpH4RqU73IX4BH5e77skC6IMji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJh5o6HnBEDyewKkyXcV2/hmAV7GZmXbUQSTXeVfBOfZogEIeBeOv9K1t5 0QFJSWYeeYZTcVsS+Q2njaLz9U+qjjzEnev5a9854Cd2FXQpAlyz08JheQE0VwSgUDL4E+Do Cg6s1OoCflUWgLb+ygb0N1FNTrlpnurtbLcBQGDxko5E2lljWz8oP3FBCew1M3Ty5P+7E/6m LI+jaJrJlL8svLhyM05VWjoKi+q+GRhOerw/b8y/T9Hw+cxjpAor4RG4Fq8gpF491Ho2xa6O Uk6y1QRPibrUmhNl1d6CGdpjUJ3FsVmgXf4E7djn35rcPjQjUmT8JHmIJCaxPcr1Etpddmzc twrhekXrdsfGD9dR7Glqr1fgAvklDxrWspkOYVgXAaWYwCaKVJpYha+E9OCp8PEC/z9YhiSY BVfbbhzecTdUnfY2HSv2FpztDpVnMvHg2eSkxHvsCOyTBZkH1w0kNdzs0CmXUL8o47VvB/lp D5G7UtkKsLQt4dbKp7CutEScyrCnbVSRaJK26WKUSPLtB2B5sMke+H3FwY3pDVRHVT9upPpH 3oaiImiVIP
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 63764fe5_bJaIBfw3NmaCPH8b1mcUUXJoU2IwbJfiZuIvrlyuJV9d76k ImdSY0A057CE47mYzDUgnkF5rbfLVYwerFHw0jg==
  • Msip_labels:

Hello !

I am working on a memory model with a state monad. But I fail to prove that the result of successive assignations in arrays is what I expect. After using the compute​ tactic, I do get the expected result and I can use reflexivity​ to prove the goal. But then Qed​ fails. Here is an example that I tried to minimize:

```
Require Import PArray.
Require Import Uint63.

Open Scope uint63_scope.

Definition mem := array (array int).
Definition SCM  := (mem -> mem) -> mem.
Definition run  : SCM -> mem                 := fun s     => s (fun x => x).
Definition ret  : mem -> SCM                 := fun x k   => k x.
Definition bind : SCM -> (mem -> SCM) -> SCM := fun s f k => s (fun m => f m k).

Definition m := (make 2 (A:=array int) (make 0 (A:=int) 0))
    .[0 <- (make 2 (A:=int) 0).[0<-20].[1<-21] ]
    .[1 <- (make 2 (A:=int) 0).[0<-30].[1<-31] ].

Definition m_expected := (make 2 (A:=array int) (make 0 (A:=int) 0))
    .[0 <- (make 2 (A:=int) 0).[0<-200].[1<-21] ]
    .[1 <- (make 2 (A:=int) 0).[0<-30].[1<-300] ].

Definition assign_instr :=
    bind
        (bind (ret m) (fun m => ret (m.[0 <- m.[0].[0 <- 200]])))
        (fun m_inter => bind (ret m_inter) (fun m => ret (m.[1 <- m.[1].[1 <- 300]]))).

Lemma test2 : run assign_instr = m_expected.
Proof. compute. reflexivity. Qed.
```

The error is:

```
The term "eq_refl" has type
 "[| [| 200; 21 | 0 : int |]; [| 30; 300 | 0 : int |] |
  [| | 0 : int |] : array int |] =
  [| [| 200; 21 | 0 : int |]; [| 30; 300 | 0 : int |] |
  [| | 0 : int |] : array int |]" while it is expected to have type
 "run assign_instr = m_expected".
```
From the documentation of Qed (https://coq.inria.fr/refman/proofs/writing-proofs/proof-mode.html#coq:cmd.Qed) I understand that this is quite unusual. If I change the order of my assignations in assign_instr​ the proof succeeds.
Where can this come from ?
I am using Coq 8.14.0

Thanks in advance !
Maxime





Archive powered by MHonArc 2.6.19+.

Top of Page