@cella-lang/cpp 0.1.202610081530 → 0.1.202610081556

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGES.md CHANGED
@@ -5,6 +5,11 @@
5
5
 
6
6
  ## 2026-10-08
7
7
 
8
+ ### 定理
9
+
10
+ - 物件生命期(對任意記憶體):`cpp.derefAfterDelete`、`storeAfterDelete`、`deleteTwice`、`derefAfterScope`、`storeAfterScope`、`loadDeleteOther`。
11
+ - 容器與字串:`cpp.atPushBack`、`arrLenPopBack`、`strCatLength`、`strCatAssoc`。
12
+
8
13
  ### 檢查器
9
14
 
10
15
  - 非遞迴、頂層 match 在參數上的定義,在 scrutinee 卡住時保持折疊。存下來的項變小:這個套件從 6.6 MB 變成約 2 MB,載入更快。
@@ -29,7 +34,7 @@
29
34
  - **`std::stod`/`std::stof`**:`cpp.stod s (cpp.stodOk refl)`、`cpp.stof`——最長的合法前綴(含十六進位浮點、inf、nan);例外(invalid_argument、out_of_range)是前置條件。
30
35
  - **`std::stol`/`stoll`/`stoul`/`stoull`**:`cpp.stol p s (cpp.stoOk refl)` 等(`cpp.stoT t s ok` 是一般形)。
31
36
  - **`std::to_string(double)`**:`cpp.toStringF x`(`%f`)。
32
- - 已知限制:`stod`/`stof` 的結果是次正規數(out_of_range)時,前置條件寫在函式套用裡會讓檢查用光預算(判成無法判定),單獨寫的時候正常拒絕。
37
+ - 檢查器:`stod`/`stof` 的結果是次正規數(out_of_range)時,前置條件寫在函式套用裡(`cpp.stod s (cpp.stodOk refl)`)之前會用光預算(判成無法判定),現在約 1 秒拒絕。
33
38
 
34
39
  ### 輸出格式操縱子
35
40
 
package/cpp.cell CHANGED
Binary file
package/index.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "cbfVersion": 19,
3
- "checkerHash": "cfa14e496df4272a",
3
+ "checkerHash": "fe5a6d3009b729cb",
4
4
  "defs": {
5
5
  "cpp.__RecordTag_cpp.IOS": {
6
6
  "merkle": "796edb43f4d0722b7fe3a28a440f5eb1b050ef4eafdc16cffc9f9bed220a8acd",
@@ -622,6 +622,10 @@
622
622
  "merkle": "643d7b43f8e4512c3c339321b8ca8dfd5c7ba59f5c05c8e94b422a1fa63f3de4",
623
623
  "own": "1a44b6226c26366fd6fc429dafb3644d373a2bebd8ae5cc9c55cb74f4dc134b4"
624
624
  },
625
+ "cpp.cpp.arrLenPopBack": {
626
+ "merkle": "dc02adb11237ff6319389d31549588ff794dd5e98c9daf86e5c540accfa0376c",
627
+ "own": "a3a60d8aba69ce8d38992e1405c0d7e11ef475e4ebbfe5e32b886cd2eced595a"
628
+ },
625
629
  "cpp.cpp.arrNonEmptyB": {
626
630
  "merkle": "b42750fbfa15969ac804547d12be3c6b59fdc3b5c47b9a4b6a6d54584372a994",
627
631
  "own": "9d8c7d5b70ad61cbeb09ab2c2e2b6588633a4786270b858cfb0af9a05ce0c06a"
@@ -662,6 +666,10 @@
662
666
  "merkle": "7f0930b3f2896ad213e855071749de57a950f137f28dbb394ed77bd9e4c0b984",
663
667
  "own": "00e63cc1ee5f3f95b8c452aab0d70d6aa9e6821b0e1dc41ab828ddb129f7a99b"
664
668
  },
669
+ "cpp.cpp.atPushBack": {
670
+ "merkle": "eba0bc3e075801dffe2c6c97e61e22c0fbc99c1c1a5067bf47d4655831b5fd8a",
671
+ "own": "d1d2ac48b9c7791f0d15dc34271e59808a66ff474ba3f03f10aee5de2928193c"
672
+ },
665
673
  "cpp.cpp.atSetAt": {
666
674
  "merkle": "a212e0233c618bab49ba101ee009691b68fa1389417677b6b30876e5f6e6d96e",
667
675
  "own": "863fb81b3be5a504c3043d56323ef4cde3ed8e5ea40a1869dd53a4e25a51a90a"
@@ -1003,7 +1011,7 @@
1003
1011
  "own": "7a4594f014a3b617adff86f5f99da2c63adfe4bc242d3f586dfdbef7dcf34bc2"
1004
1012
  },
1005
1013
  "cpp.cpp.confMono": {
1006
- "merkle": "f84526da3a0bbc0cca43a920820b257793c7ad54b0b41f0aecee3169c5d3674d",
1014
+ "merkle": "b3d545d2eab6c4fce51c6f58ca92452ac695d459ea7a14916d14ad3074d404c8",
1007
1015
  "own": "4e4845ed83f0b29898354143eaa615e42f01e6a52ab74253830a0c8318e72613"
1008
1016
  },
1009
1017
  "cpp.cpp.confN": {
@@ -1118,6 +1126,14 @@
1118
1126
  "merkle": "4ff70fff850da8a17dd0faef8ebafc3ab910e18369f3b8dbf38c45fb9f1bbe30",
1119
1127
  "own": "4cffc2a83298fb2ce4191abcd5434ca514fa1f9917fa5904115f5d4631b5b4f5"
1120
1128
  },
1129
+ "cpp.cpp.deadDeleteAt": {
1130
+ "merkle": "748b7555a84a99065aa1bd0dd49e8aa199c659f3d4a1ff30117b0826d39016b6",
1131
+ "own": "f613a6acda6dfdc8755a991e78bd625eb7b7588c5d158d464b58bf82901a3c4d"
1132
+ },
1133
+ "cpp.cpp.deadDerefAt": {
1134
+ "merkle": "1d04fb3af44e8b0de3ea8de4f4df86678b56659646135aaf9184843990ea2d1a",
1135
+ "own": "81ae6e7fcf879c12e00180b7712c7103874f00345f5bf79ed2eadf93a2d92f5d"
1136
+ },
1121
1137
  "cpp.cpp.decNum": {
1122
1138
  "merkle": "db92ba9d7c874981cafa7dd14e093cbe2996a1d550275fed197356edfe94d2a2",
1123
1139
  "own": "5790b472337e966cc051f984cd85a31a6a9afa6d33f56e071f9dcb558aa42d26"
@@ -1150,6 +1166,10 @@
1150
1166
  "merkle": "ddfd4b398a268ba377ccb626fb901bcff3c0590b20448f9ffd4a3c89ba77a404",
1151
1167
  "own": "cf799543eef6f49eda118360c71ab15a720df1843681880c304e3003f04ab69f"
1152
1168
  },
1169
+ "cpp.cpp.deleteTwice": {
1170
+ "merkle": "1e06a015a770e5afe2f502d81896e6c4889b33f2e5fcac190c956aa049d69b5d",
1171
+ "own": "5698547a1287d6fd795e0ee6d928fbd4d88735cce713cc47cd15649abdfcf4a0"
1172
+ },
1153
1173
  "cpp.cpp.denote": {
1154
1174
  "merkle": "509595cc82204a3267b85d26ec96bdaa5d668f9ce2ccac33d916b1da3997740f",
1155
1175
  "own": "bae3835b71efb7a8939cd29ec40702e3048eb227cf841058c104de05ac5109c6"
@@ -1159,9 +1179,17 @@
1159
1179
  "own": "4c02f563f19a5e7bf713fbcfa287886ee0c3ee63486d62adb7857e58bc2ae529"
1160
1180
  },
1161
1181
  "cpp.cpp.denoteMono": {
1162
- "merkle": "4e090afc4c96fe2d412f55ea32f7e4938d16d779317e66d07fbe56e6ed037448",
1182
+ "merkle": "6625bf91419cc7aeb5cf63a04281a579d9a7c856d27ba8de5a1228c73a6daa6d",
1163
1183
  "own": "0d57e5452cca2555a75c0b6de8990b2b4c7b11e5a0ba3cb35a20f6d8aa912e9a"
1164
1184
  },
1185
+ "cpp.cpp.derefAfterDelete": {
1186
+ "merkle": "60352be8fa9c14b6a13fcba0af510affd6646bc141978384f4c41fd7364fba67",
1187
+ "own": "c80830ca671e316deca37d5d68d1a23340404579b27982d339d73ee3edff6c69"
1188
+ },
1189
+ "cpp.cpp.derefAfterScope": {
1190
+ "merkle": "ff9295b6c335d7de2b39235056bd31321faf95c5fc3181968b3ab3b96f455de3",
1191
+ "own": "3e538a8c369f25eb424714242816c692e32d1d419b25311c8377c9d20e4b725c"
1192
+ },
1165
1193
  "cpp.cpp.derefB": {
1166
1194
  "merkle": "41c431e3fbc2449b64ae06f9b7c3cfcadeb0202a2873387d8e46e8c12b496305",
1167
1195
  "own": "59f474be83b27227473a4adb4ecb73db5dcbc78a7d6c71c4bd291ae596318169"
@@ -1227,7 +1255,7 @@
1227
1255
  "own": "90b13bc37b90ae57fe3c5c277556d392746c3cfdff7b454c004c139164458402"
1228
1256
  },
1229
1257
  "cpp.cpp.doStepAgree": {
1230
- "merkle": "067120cc2435617d8c6cf35ebb568a18058b46cb6f32fb6fbe4816a596eb1a06",
1258
+ "merkle": "ce0e4246652ba8b37dfdf6b9e4e3121aefce1912a535d6932e706df8fa2c3f50",
1231
1259
  "own": "28eb17a95d51bef98b6852bb23b35fef09132ad3300f035e80763ca1bad53dbd"
1232
1260
  },
1233
1261
  "cpp.cpp.doUnfold": {
@@ -1391,7 +1419,7 @@
1391
1419
  "own": "0ae3aaa81bf2bf7fd3ee3cc5de1e0b70f5a931964e6a91baae2cdce5e72e360a"
1392
1420
  },
1393
1421
  "cpp.cpp.execAgreesN": {
1394
- "merkle": "6a95362fe0fb9de3dc99bba09a6d784db97a4194d4adb33c0fc8f5bfd4a2a538",
1422
+ "merkle": "98edbc29b9f0bcbece4e37612e95bfdd6b9315f11aa333c5489f212464273b65",
1395
1423
  "own": "ffb31cd64297c8c39184f7b42ea7b10dcaabeb8287c16b16521f996ad6478982"
1396
1424
  },
1397
1425
  "cpp.cpp.execDenote": {
@@ -1399,7 +1427,7 @@
1399
1427
  "own": "859ac644ac603d21938586b13743c68761870d7333751a0d6f7e672ee9fbf3d9"
1400
1428
  },
1401
1429
  "cpp.cpp.execDenoteLoop": {
1402
- "merkle": "2b82f84e8109bc01cfcc4bbda53575a1b97442e2bb70bd6ba23f3378916c7f8a",
1430
+ "merkle": "5cc9ae81c2ae0b087fd1d79b68c5e210fc492e4fbea9fcc9e0bb1f1bddcf42c1",
1403
1431
  "own": "61760c7ca2c678c0398f3548ce871edb324c33b39bad93dcf8aabe078fd53e4a"
1404
1432
  },
1405
1433
  "cpp.cpp.exp2At": {
@@ -1683,7 +1711,7 @@
1683
1711
  "own": "4a647556009264f40081d66ad2d5bcfd1b04f2e3c48ccab390254e9bc6caeb27"
1684
1712
  },
1685
1713
  "cpp.cpp.finishMono": {
1686
- "merkle": "a32f97fe4a49dc09c8367e34478afe778d39c6d5472a282a0155d5742d1f1b9b",
1714
+ "merkle": "ea8675236dc677f440890294f54463495395c49d7ef0097f0a1c2b4d56ab461d",
1687
1715
  "own": "e88b70f1f6a615164535356b372adea7faf4578d46990edf4ab8522fe739c7fa"
1688
1716
  },
1689
1717
  "cpp.cpp.finishN": {
@@ -1911,7 +1939,7 @@
1911
1939
  "own": "f06acd2dee065427ef239427f7ff9edd33d51da5a9b679da5dd96d401b122d8b"
1912
1940
  },
1913
1941
  "cpp.cpp.forFrameMono": {
1914
- "merkle": "221df27dabc0135961c9e5bb97bd58585c3715971de8551425fd89e86f3d36b9",
1942
+ "merkle": "b73198a4a5fde5f2f7795a971e1a01d59a0263df5fdee830a2e09b05b5bf94ac",
1915
1943
  "own": "83cca7c005c54318992e709172d6bbd1344a0aac93898c396b339b4c27266906"
1916
1944
  },
1917
1945
  "cpp.cpp.forGo": {
@@ -1931,15 +1959,15 @@
1931
1959
  "own": "97cfe3c7b4430ec5cadf5d8cd897a8fa1f121a2683b47072fe1fb709009690bb"
1932
1960
  },
1933
1961
  "cpp.cpp.forSame": {
1934
- "merkle": "fb512ecea7abe9a7b49e2af5c192d3421d9ceb6c8511ea9d543e63c196c32997",
1935
- "own": "44c972fecc30628534c2b398f14baa296fc4c28e2c049ed6140a8aa0b0229069"
1962
+ "merkle": "6717b99caebdbdbbbda90e7e003c62862ad3ac1b1a81ebd5c46346a25aebf407",
1963
+ "own": "9af5de1db3fd1c7f6943c453bff40141d0e24a1c1a9bd6809d8f7bd4b54f7fb9"
1936
1964
  },
1937
1965
  "cpp.cpp.forStep": {
1938
1966
  "merkle": "b89bf0315006cd56c37f399cbd0c6b02e3e83510cdeb4fa512b67a12d196eb34",
1939
1967
  "own": "22458f0f81e07836dd06949cbcb8b756a3f5600163cd1cfc5b2443b2caa495cd"
1940
1968
  },
1941
1969
  "cpp.cpp.forStepAgree": {
1942
- "merkle": "2b8840277fd70b64967218c171030f7fdb1c3a8bbfc63388a22d8b69b704b6d3",
1970
+ "merkle": "157853e61d4cc89266955f4f1278022425504e8eb4f9944e21c72ab3f07bb377",
1943
1971
  "own": "9a557cc3db3fed68dbf61279fda9985e370fc2c3713072d9835b51f37246f688"
1944
1972
  },
1945
1973
  "cpp.cpp.forUnfold": {
@@ -2426,6 +2454,10 @@
2426
2454
  "merkle": "62ca171bba2eea2c9d97eb02fd05a87b91d534caf38cbb8ba4a600af8b3b9cfa",
2427
2455
  "own": "7307545dfa1a290daf10b6d3a27958c51785c9a120a4b1e6a12e0fb7b7d3bd86"
2428
2456
  },
2457
+ "cpp.cpp.lenDropLast": {
2458
+ "merkle": "9b58946dcea6050002c97892879ecb24537fa862b96eb7f9d739857de3e75b64",
2459
+ "own": "3d5b697d690d91427ca281894dca3437c94dc6233aeba3790c614b6affac1393"
2460
+ },
2429
2461
  "cpp.cpp.lengthAppendL": {
2430
2462
  "merkle": "d3794b059a7a2bd8eba6bfbc00b222f94aa192932d2ae5653613773c98e8f68e",
2431
2463
  "own": "06403e1fa61f9c93ec36d8a3a001a45bac21b638cba388c5cbcca3ed16fdc903"
@@ -2494,6 +2526,10 @@
2494
2526
  "merkle": "c61ad19f1d0db07de2bb91dd7d7ed0889d4186fb592d82ec75a69bc8dddfb281",
2495
2527
  "own": "a82c3c3247e649f483dd03385723563a507df818351d278669bed6e1fd0f5f05"
2496
2528
  },
2529
+ "cpp.cpp.loadDeleteOther": {
2530
+ "merkle": "e10445694e449ada3b7fc3ef25a0c99fc5059e98e930aa7c2098a3c97729de95",
2531
+ "own": "1105b8f1abf4f14d6b9a021e00116d4114869b7ecab89d785a3ebbe99a5edba2"
2532
+ },
2497
2533
  "cpp.cpp.loadNewObj": {
2498
2534
  "merkle": "ace75c6f511d3b3307d8ad7c4ca6dbf0c5b9c1fab31d8068cab81f052ea05248",
2499
2535
  "own": "ac928e0a3f06ff850a6b3fa5bcca4b51323b8fc4144a254747d0b0ce8f919554"
@@ -3651,7 +3687,7 @@
3651
3687
  "own": "12b33d4f4e60a57e4f7bc17e3f955a7f89d2300e55dbe263a9f4de0553c3c063"
3652
3688
  },
3653
3689
  "cpp.cpp.stepRunAgree": {
3654
- "merkle": "b35ab29eb61fe3500ab8c006f5c03d2eaf5c2e3b86a5fb129a82db3765a1f0ae",
3690
+ "merkle": "86e818b30b47a0627db6f49f67c35fbd98c8565592172a5701764791d6d2e83e",
3655
3691
  "own": "e8950f914395e3c262e619af4df890c0e83d026950c61c3f4d660a3ad007d7fa"
3656
3692
  },
3657
3693
  "cpp.cpp.stepRunLF": {
@@ -3746,6 +3782,14 @@
3746
3782
  "merkle": "4383c40a95d4dff7b64637a698b9c48ac61039e7cfe6d0eac4419e71e7fcf284",
3747
3783
  "own": "f9dbec514456fb8a597f394fd81e1403e38f5b024cadf0e6a7d7e4d658f888c1"
3748
3784
  },
3785
+ "cpp.cpp.storeAfterDelete": {
3786
+ "merkle": "78162d7096716deee1f7eec72838c5cb915c8167da7d71e2f1f5b22ee32e84c4",
3787
+ "own": "be8413582e2845f3cb6e5ea151cfef2a68d93f9b107d11b1ceabf5aacf6f7ffe"
3788
+ },
3789
+ "cpp.cpp.storeAfterScope": {
3790
+ "merkle": "0f606ad3df07945c33b3c8acf97101098c9170064d1687aeb90d3113005ea076",
3791
+ "own": "33c7d015b45e50132cda8cba477c64e4282ea4bd2dc2d1f27bc82da7661c98c7"
3792
+ },
3749
3793
  "cpp.cpp.storeAt": {
3750
3794
  "merkle": "a19235d8e89569ff6326ae1fad0366b8f335408c93b8271d2277b1744fcb271d",
3751
3795
  "own": "2c2f8ff26754c83537a077a972551817f1f88a8b14ae55649cfe46bdf26124b0"
@@ -3770,6 +3814,14 @@
3770
3814
  "merkle": "adf41f8e2cd26171c7e9e2ef9faf290b8a31f75f25f1e36f0605ac7054125c4e",
3771
3815
  "own": "567d0f791df7c48cea3ea40811f89efca8c4607ecb30e42cdfaa43d987ec6332"
3772
3816
  },
3817
+ "cpp.cpp.strCatAssoc": {
3818
+ "merkle": "406ecc977a3df5ad950059521bdb21c747ab11671df5bd170194d4049c67d7b2",
3819
+ "own": "83c125476cf2827d643bf803f23be46df0c7d43b6c774a88aa0fcabfbb7ab8fb"
3820
+ },
3821
+ "cpp.cpp.strCatLength": {
3822
+ "merkle": "fae21460144ecb1d09e18755c2e2c2ea86484ca33fb135ad9025c46be79eedf5",
3823
+ "own": "02da810e098b03491c5e7a50b25ea5da6e10c42b25b9302ffede12a12eade1c7"
3824
+ },
3773
3825
  "cpp.cpp.strClear": {
3774
3826
  "merkle": "0290b2447111997d1d78d72efbb21f651fda7e8ae3af195a88f54fd08d82d6eb",
3775
3827
  "own": "936c2b53eea6fc7d8576578be0243097444c186223ad9d6686aa23ae1324f2e3"
@@ -3975,7 +4027,7 @@
3975
4027
  "own": "900c94554c7ea810a70e165938842bcf6d13385d90dd697bf6b049d7daa52a1e"
3976
4028
  },
3977
4029
  "cpp.cpp.swRestAgree": {
3978
- "merkle": "d2224e423165237189a4fdd960199af0223f265c3b124122890d018c7c0c43f0",
4030
+ "merkle": "b5fbc76249303dd3d5ec15f7f137a01fcbde74be5682ecac4e570b54dbad1845",
3979
4031
  "own": "9ec4d71ad19a085252aeb67bd55a4c02a19bfdc74a741c988a3ee001b5eacafb"
3980
4032
  },
3981
4033
  "cpp.cpp.swRestStep": {
@@ -3991,7 +4043,7 @@
3991
4043
  "own": "cecba7a717382fe6fe07d75e0a05bab4040c2698b997b173b93a960e2bb5c98f"
3992
4044
  },
3993
4045
  "cpp.cpp.swStepAgree": {
3994
- "merkle": "6c451a7158b9522cfa351e402f4ea7db3fcac792571efb8abc60c4cad200ef98",
4046
+ "merkle": "0a53b9dc6d6c5d3c4a0ed58d38bb4429fbbe0881941156d6b299bdbbcfe7bc0e",
3995
4047
  "own": "74afac5bbdb00df45e448c8cc09cec38a0e822d47097db01060146361134f868"
3996
4048
  },
3997
4049
  "cpp.cpp.swapAt": {
@@ -4243,7 +4295,7 @@
4243
4295
  "own": "22317cc2c19846c694c01346bc20d897a0c80a6936e65548598731f5b6019e81"
4244
4296
  },
4245
4297
  "cpp.cpp.whileStepAgree": {
4246
- "merkle": "2423c86e27f024fbc26a77106ac85b331df688abc1c7126d639e52de7eb16154",
4298
+ "merkle": "ec150c2bb333aa4e8eff87636c5c504b228b3af3511fb4cf18af485f52d04282",
4247
4299
  "own": "0dc9b22f727d098e97b8ccd6dc3ddec8b652b456a55f9024a1d691bce509c75a"
4248
4300
  },
4249
4301
  "cpp.cpp.whileStepAt": {
@@ -4354,7 +4406,7 @@
4354
4406
  "format": 1,
4355
4407
  "modules": {
4356
4408
  "cpp": {
4357
- "bytes": 2401308,
4409
+ "bytes": 2451660,
4358
4410
  "deps": [
4359
4411
  "cpp"
4360
4412
  ]
@@ -4362,7 +4414,7 @@
4362
4414
  },
4363
4415
  "requires": {
4364
4416
  "cella-lang": {
4365
- "checkerHash": "cfa14e496df4272a",
4417
+ "checkerHash": "fe5a6d3009b729cb",
4366
4418
  "modules": [
4367
4419
  "int"
4368
4420
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cella-lang/cpp",
3
- "version": "0.1.202610081530",
3
+ "version": "0.1.202610081556",
4
4
  "description": "A formally verified C++ subset for the Cella proof checker: integer types with C++ promotions and conversions (LP64 / AVR), control flow with small-step semantics, iostream, arrays, vector, sort, and standard containers — compiled module pack.",
5
5
  "files": [
6
6
  "cpp.cell",
@@ -20,14 +20,14 @@
20
20
  "license": "Apache-2.0",
21
21
  "author": "SungYu Chang",
22
22
  "peerDependencies": {
23
- "cella-lang": "0.1.202610081453"
23
+ "cella-lang": "0.1.202610081556"
24
24
  },
25
25
  "cella": {
26
- "checkerHash": "cfa14e496df4272a",
26
+ "checkerHash": "fe5a6d3009b729cb",
27
27
  "cbfVersion": 19,
28
28
  "modules": [
29
29
  "cpp"
30
30
  ],
31
- "packHash": "660b25c23b4ac18a"
31
+ "packHash": "33ac70bdd5a9ec1f"
32
32
  }
33
33
  }