# 5.2.6.2.1 TC_eUICC_EnableProfile_Twice_Notifications — `-man` ↔ `-cas` diff 报告
> **交付形态说明**：本报告随专家交付包分发——`-man`/`-cas` 脚本包 zip 与 190server HTML 执行日志已内联至 `packages/`、`evidence-html/`，相应路径已相对化；TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径（未随包）。

- 生成时间：2026-10-08 22:57:12 ｜引擎：holiday-blk5/0.1｜配对状态：`PAIRED`
- 分母口径：卡侧 61 之一

## 1. 配对与包

| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
| `-man` | 5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-man.zip | `86f809677e72131e89e6c4fd5e1e1be5e4e6afbcf12ae52f7f33ac7e128810f0` | zip | TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation |
| `-cas` | 5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-cas.zip | `12dd4acd63d6a034a1e5b431dd07f3ad24c27cec356b5598417fd686b7735d7c` | zip | — |

- man 源路径：`../../packages/man/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-man.zip`
- cas 源路径：`../../packages/cas/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-cas.zip`
- 上游来源：{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
- 适用性：naming-map=`M` ["M", "M", "M", "M", "M"]；caseir=`M`

## 2. 执行摘要（双方 job/终态）

| 侧 | 终态/计划 | 备注 | ErrorCount | job_id | 业务状态 | TTR | 诊断包 |
|---|---|---|---|---|---|---|---|
| `-man` | `red` | vendor_error_cases（厂商显式错误用例） | 3 | `20260908_142820:8b0705a656aa48988a3380c4467d3356` | — | `/Users/yuhu/cas/原料/切片/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications/logs/20260908_164133/result/ESIM_TEST_SGP_23/TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation.ttr` | `—` |
| `-cas` | `failed` | 纯 native 零卡态前置（N0） | 9 | `3987c141803443e4a27b675e34e98986` | — | `/Users/yuhu/cas/experiments/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-20261004_022948/logs/3987c141803443e4a27b675e34e98986/result/TC_eUICC_EnableProfile_Twice_Notifications/TC_eUICC_EnableProfile_Twice_Notifications_01_merged.ttr` | `—` |
- cas 块4账本：decision=`RERUN`；route=`native_N0`；live 事件 1 条（4.6 波次进行中；以块4终版账本为准）
- cas 4.6 波次最新执行：terminal=`failed`；stage=`verify`；job=`3987c141803443e4a27b675e34e98986`；gaps=["trace verdict=FAIL", "结果通道 verdict='FAIL'"]
- cas 失败归因引用（块4）：`b8-attribution.md`
- cas 证据来源分层：`RERUN` → 本轮 4.6 波次执行

## 3. HTML 执行日志状态

- `-man`：**NATIVE**（`../../evidence-html/5.2.6.2.1/man/TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation.html`；sha256 `cefd6c4721c2c889a599899ce254541d78f7ec78fed3c05fb72f854a94d1f257`；479904 bytes）
- `-cas`：**NATIVE**（`../../evidence-html/5.2.6.2.1/cas/TC_eUICC_EnableProfile_Twice_Notifications_01_merged.html`；sha256 `f6cc25079a677396f54f2142466766314575cbf3e43d89d199272448de36d1ba`；16553 bytes）
- 纪律：原生缺失 → `HTML_UNAVAILABLE` 显式阻断（附探针结论）；派生件仅标 `DERIVED_NOT_NATIVE`，不冒充原生。

## 4. L1 脚本/依赖/命名差异（源文件闭包级）

- 闭包规模：man 34 文件 / cas 82 文件；同名 31（字节同 30，内容异 1）
- 同名内容异：`Import/TestCase_SGP_23.js`
- man-only 文件 3：`ESIM_TEST_SGP_23.UCE`, `ESIM_TEST_SGP_23.sol`, `MANIFEST.json`
- cas-only 文件 51：`Import/CapInfo.js`, `Import/ExecuteTestCase.js`, `Import/ExecuteTestCase_CSC.js`, `Import/ExecuteTestCase_LoadProfile_via_bip.js`, `Import/ExecuteTestCase_Local_Management.js`, `Import/ExecuteTestCase_Non_Telecom_Profile.js`, `Import/ExecuteTestCase_Performance.js`, `Import/ExecuteTestCase_PressureTest.js`, `Import/ExecuteTestCase_ProfileFormatTest_V_2_3_1.js`, `Import/ExecuteTestCase_ProfileServicesListTest.js` …
- 注：man 包＝切片最小闭包（`script/` 投影）；cas 包＝slice_native 全工程投影（厂商参照闭包＋生成体）。闭包规模差为打包形态差异；同名文件字节差集中于 `Import/TestCase_SGP_23.js`（TC 入口本体）。

### 4.1 入口代码对照

- 行数：man 147 / cas 133；字符：man 8098 / cas 10301
- man 顶层调用 Top：[["CheckData", 17], ["TestStepStart2", 11], ["EnCodeInteger_Ber", 3], ["parseInt", 3], ["TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation", 2], ["Ini_powerOn_eUICC_LPAe_not_activate", 2], ["TS_MANAGE_CHANNEL_OPEN", 2], ["TS_SELECT", 2], ["ES10b_ListNotification", 2], ["Update_Max_seqNumber_Of_Notification", 2]]
- cas bind 调用：[["checkData", 17], ["sendApdu", 5], ["resetAndAtr", 1], ["runToSteadyState", 1], ["sendTerminalProfile", 1], ["manageChannelOpen", 1]]

| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 4 |

<details><summary>unified diff（截断预览）</summary>

```diff
--- man
+++ cas
@@ -1,146 +1,132 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261004-022948
+// Function: （purpose 原文未由 SGP.23 该 TC 提供，corpus vacuum 登记）TC_eUICC_EnableProfile_Twice_Notifications，Test Sequence #01 Nominal: Notifications generation（本 TC 单条 Test Sequence），适用性 M。
+// Test points: ICH-IC1-K1-C1 ATR_present；ICH-IC1-K2-C2 FCP_Template；ICH-IC1-K2-C4 SW
+//   ICH-IC1-K3-C4 SW；ICH-IC1-K4-C4 final SW；ICH-IC2-K1-C4 SW；ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
+//   ICH-IC2-K2-C4 SW；S2-C1 SW
+//   S2-C2 响应 = #R_LIST_NOTIF_IN2_PIR_IN2：ListNotificationResponse ::=  branch/count
+//   S2-C2 响应 = #R_LIST_NOTIF_IN2_PIR_IN2：ListNotificationResponse ::=  element fields
+//   S2-C3 Verify that <NOTIF_SEQ_NO_IN2_PIR> and <NOTIF_SEQ_NO_IN2> fo branch/count；S7-C1 SW
+//   S7-C2 响应 = #R_LIST_NOTIF_DI1_EN2：ListNotificationResponse ::= noti branch/count
+//   S7-C2 响应 = #R_LIST_NOTIF_DI1_EN2：ListNotificationResponse ::= noti element fields
+//   S7-C3 Verify that <NOTIF_SEQ_NO_IN2> is lower than <NOTIF_SEQ_NO_D branch/count
+//   S7-C4 Verify that <NOTIF_SEQ_NO_DI1> and <NOTIF_SEQ_NO_EN2> follow branch/count
+// 本函数由 CaseIR 5.2.6.2.1 编译生成（experiments/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-20261004_022948，SGP.23 v1.16 × SGP.22 v2.7）：字节权威=CaseIR，非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M：编译期门，运行时由 harness 环境前置承担。
+function TC_eUICC_EnableProfile_Twice_Notifications_01_merged() {
+    var bind = curBind;
+    // GEN-IC-1 卡态声明（E 段 General Initial Conditions，编排责任）：The PROFILE_OPERATIONAL1 is installed and Enabled on the eUICC: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // GEN-IC-2 卡态声明（E 段 General Initial Conditions，编排责任）：No Notification is stored in the eUICC's Pending Notifications List: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
 
-function TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation()
-{
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1)：RESET（K 语料机械展开）
+    var s8 = bind.resetAndAtr();
+    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s8.atr_hex !== "" ? "1" : "0");
 
-	if(!Card_Have_ECC_Cert)
-		return;
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2)：SELECT_MF（K 语料机械展开）
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s9 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s9.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s9.sw);
 
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3)：TERMINAL_CAPABILITY_LPAd（K 语料机械展开）
+    var s10 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s10.sw);
 
-	initial_condition_Remove_All_Notification();
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4)：TERMINAL_PROFILE（K 语料机械展开）
+    var steady11 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady11.final.sw);
 
-	tracenamestr = "验证当前存在一个enabled状态的profile时，激活另外一个profile，会默认产生一个disabled通知和一个enable通知";
-	curDis.TraceStart(sno++,tracenamestr);
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1)：MANAGE_CHANNEL_OPEN（K 语料机械展开）
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s12 = bind.manageChannelOpen("9000");
+    bind.checkData("ICH-IC2-K1-C4 SW", "9000", s12.sw);
+    bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s12.chan !== null ? "1" : "0");
 
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化；");
-	Ini_powerOn_eUICC_LPAe_not_activate();
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2)：MTD_SELECT（K 语料机械展开）
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s13 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("ICH-IC2-K2-C4 SW", "9000", s13.sw);
 
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令，打开辅助逻辑通道；");
-	TS_MANAGE_CHANNEL_OPEN();
+    // 步骤 1：Install PROFILE_OPERATIONAL2 The default Profile downloading procedure defined in section 2.2.3.1 SHALL be used with the following exceptions: #CERT_S_SM_DP2auth_ECDSA SHALL be set in #AUTH_SMDP_MATCH_ID rather than #CERT_S_SM_DPauth_ECDSA #TEST_DP_ADDRESS2 SHALL be set in #AUTH_SMDP_MATCH_ID rather than #TEST_DP_ADDRESS1 #CERT_S_SM_DP2pb_ECDSA SHALL be set in #PREP_DOWNLOAD_NO_CC rather than #CERT_S_SM_DPpb_ECDSA（tc_step）
+    // card-state orchestration declaration (no APDU face): execution is
+    // the batch card_state prep framework's responsibility (4227 ruling B
+    // same-family scope; ensure_profile_state / prep_packager);
+    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
 
-	curLogicChannel = 1;
+    // 步骤 2：MTD_STORE_DATA（tc_step；REQ: RQ35_001, RQ35_002, RQ55_048_1）
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla2 = s12.chan !== null ? (s12.chan <= 3 ? 128 + s12.chan : 188 + s12.chan).toString(16).toUpperCase() : null;
+    var s2 = bind.sendApdu(sdCla2, "E2", "91", "00", "BF2804810204F0", "00", "9000");
+    bind.checkData("S2-C1 SW", "9000", s2.sw);
+    // notification-list 响应面（TC_eUICC_EnableProfile_Twice_Notifications，SGP.22 §5.7.9 结构 + vendor ABI 分支锚；断言参数经 spec_pattern 子句注入）：
+    var lw2T = BindEs10xSingleRequest.parseBerTlv(s2.resp);
+    var lw2Ok0 = lw2T.length === 1 && lw2T[0].tag === "BF28";
+    var lw2_br = lw2Ok0 ? BindEs10xSingleRequest.parseBerTlv(lw2T[0].value) : [];
+    var lw2_brtag = lw2_br.length === 1 ? lw2_br[0].tag : "";
+    var lw2_els = lw2_brtag === "A0" ? BindEs10xSingleRequest.parseBerTlv(lw2_br[0].value) : [];
+    bind.checkData("S2-C2 响应 = #R_LIST_NOTIF_IN2_PIR_IN2：ListNotificationResponse ::=  branch/count", "1", (lw2_brtag === "A0" && lw2_els.length === 2) ? "1" : "0");
+    var lw2_fok = lw2_brtag === "A0" && lw2_els.length > 0;
+    for (var lw2i = 0; lw2i < lw2_els.length; lw2i++) {
+        if (lw2_els[lw2i].tag !== "BF2F") { lw2_fok = false; continue; }
+        var lw2M = BindEs10xSingleRequest.parseBerTlv(lw2_els[lw2i].value);
+        var lw2_f = {};
+        for (var lw2j = 0; lw2j < lw2M.length; lw2j++) {
+            if (lw2_f[lw2M[lw2j].tag] === undefined) { lw2_f[lw2M[lw2j].tag] = lw2M[lw2j].value; }
+        }
+        if (lw2_f["80"] === undefined) { lw2_fok = false; }
+        if (lw2_f["81"] !== "0780") { lw2_fok = false; }  // operation
+        if (lw2_f["5A"] !== "989209013254769810F9") { lw2_fok = false; }  // iccid
+    }
+    bind.checkData("S2-C2 响应 = #R_LIST_NOTIF_IN2_PIR_IN2：ListNotificationResponse ::=  element fields", "1", lw2_fok ? "1" : "0");
+    bind.checkData("S2-C3 Verify that <NOTIF_SEQ_NO_IN2_PIR> and <NOTIF_SEQ_NO_IN2> fo branch/count", "1", (lw2_brtag === "A0") ? "1" : "0");
 
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令，选择ISD-R；");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
+    // 步骤 3：Remove the ProfileInstallationResult and OtherSignedNotification for Install（tc_step）
+    // card-state orchestration declaration (no APDU face): execution is
+    // the batch card_state prep framework's responsibility (4227 ruling B
+    // same-family scope; ensure_profile_state / prep_packager);
+    // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
 
-	curDis.TestStepStart2(stno++,"下载PROFILE_OPERATIONAL2；");
-	pkId_CI_ForVerification = pkId_CI_ECDSA_NIST;
-	pkId_CI_ForSigning = pkId_CI_ECDSA_NIST;
+    // 步骤 4：Enable PROFILE_OPERATIONAL2（tc_step）
+    // card-state orchestration declaration (no APDU face): execution is
+    // the batch card_state prep framework's responsibility (4227 ruling B
+    // same-family scope; ensure_profile_state / prep_packager);
…（差异行超限，共 267 行，此处截断）
```

</details>
### 4.2 UCE/命名对照

- man：`ESIM_TEST_SGP_23.UCE`；入口 [('TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation', 'eUICC Enable Profile Process', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
- cas：`TC_eUICC_EnableProfile_Twice_Notifications/TC_eUICC_EnableProfile_Twice_Notifications.uce`；入口 [('TC_eUICC_EnableProfile_Twice_Notifications_01_merged', 'TC_eUICC_EnableProfile_Twice_Notifications', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_EnableProfile_Twice_Notifications_01_merged)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}

## 5. L2 步骤/APDU/step_map 差异（结构化对齐）

- 命令计数：man 207 / cas 14；精确对齐 7，核心（CLA·INS·P1·P2·Lc）同 4，man-only 196，cas-only 3

| # | `-man` | `-cas` | 对齐 |
|---|---|---|---|
| 1 | `@RESET` | `@RESET` | exact |
| 2 | `00A40004023F00` | `00A40004023F0000` | core_same |
| 3 | `00C0000020` | `00C0000020` | exact |
| 4 | `80AA000007A9058100830137` | `80AA000007A9058100830107` | core_same |
| 5 | `801200000F` | `801200000F` | exact |
| 6 | `801400000C810301250082028281830100` | `801400000C810301250082028281830100` | exact |
| 7 | `0070000001` | `0070000001` | exact |
| 8 | `01A4040010A0000005591010FFFFFFFF8900000100` | `01A4040010A0000005591010FFFFFFFF8900000100` | exact |
| 9 | `01C0000021` | `01C0000021` | exact |
| 10 | `81E2910007BF3004800200AD` | `81E2910007BF2804810204F000` | core_same |
| 11 | `81E2910007BF3004800200AE` | `81E2910007BF2804810204F000` | core_same |
| — | man-only: `8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038`, `0070000000`, `81E2910003BF2000`, `01C00000A9`, `81E2910003BF2E00`, `01C0000015`, `81E21100FFBF388202F030498010225F1E8566A8…7525350`, `81E21101FF54455354310B300906035504061302…603551D`, `81E29102F71104073005880388370A300E060355…3000010`, `01C0000000`, `01C0000000`, `01C0000000` | | |
| — | | cas-only: `8010000020FFFFFFFF7F9D00DFBF00001FE20000…0000200`, `81C0000005`, `81C0000005` | | |

## 6. L3 规范字段/Expected/REQ/通过条件差异

- spec：/Users/yuhu/cas/原料/切片/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications/spec_intl/SGP.23-v1.16_5.2.6_EnableProfile_Twice_Notifications.md（风格：table）；caseir：`/Users/yuhu/cas/experiments/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-20261008_015719/caseir_materialized_gate.json`

| 步 | 规范动作 | Expected 片段 | 规范 REQ | cas 检查 | cas REQ | man 实现 | man 结果 |
|---|---|---|---|---|---|---|---|
| 1 | MTD_STORE_DATA(#LIST_NOTIF_ALL) | 1 | ["RQ35_001", "RQ35_002", "RQ55_048_1"] | ["S2-C1", "S2-C2", "S2-C3"] | ["RQ35_001", "RQ35_002", "RQ55_048_1"] | L65-81（`ES10b_ListNotification("04F0")` L66 + 双元素字段断言 L70-78 | **断言红 ×1**（响应 `BF2860A05E [BF2F 800200A4(IN2), BF2F 800200A3(PIR)]` SW=9000——两条安装通知**字段面全过**（op=0780/addr=testsmdppplus2/ICCID=OP2 各断言相等）；L80 断言 期望 00A3 ≠ 实际 00a5——**卡列表枚举序 [IN2(a4), PIR(a3)] 与脚本假设 [PIR, IN2] 位置颠倒**，见根因节；ttr L555-557） |
| 2 |  | 0 | [] | [] | [] | L86-92（遍历 `ES10b_RemoveNotificationFromList`） | 通过（BF30 status=00 两条删除在案，seq a3/a4 铁证 ttr L559-570 区段） |
| 3 |  | 0 | [] | [] | [] | L97-104（`EnableProfileRequest` + `CheckData("BF3103800100")` | 通过（`BF3103800100` enableResult=ok 期望＝实际） |
| 4 |  | 0 | [] | [] | [] |  | — |
| 5 |  | 0 | [] | [] | [] |  | — |
| 6 | MTD_STORE_DATA(#LIST_NOTIF_ALL) | 1 | ["RQ35_001", "RQ35_002", "RQ35_007", "RQ57_135_5"] | ["S7-C1", "S7-C2", "S7-C3", "S7-C4"] | ["RQ35_001", "RQ35_002", "RQ35_007", "RQ57_135_5"] | L118-138（列表 L119 + DI1/EN2 字段断言 + L133 断言 + L135 序比较 + L137  | **断言红 ×1（连锁）**（响应 `BF2860A05E [BF2F 800200A5 81020520 0C16 plus1 OP1] [BF2F 800200A6 81020640 0C16 plus2 OP2]`＝[DI1(0520 disable, plus1, OP1, a5), EN2(0640 enable, plus2, OP2, a6)]——字段面全过且本步列表枚举序恰为升序；L133 断言 期望 00A5 ≠ 实际 00a4：DI1(a5) 与 Sqn2+1 不等——**连锁自步骤 1 的位置颠倒**（Sqn2＝entry[1]＝PIR(a3) 而非 IN2(a4)，a3+1=a4≠a5）；L137 断言 EN2(a6)=DI1(a5)+1 ✓ 通过；L135 序比较通过；ttr L630/L652-657） |

### 6.1 充分性分析（启发式，不作最终裁定）

- cas：`NO_MECHANICAL_GAPS`（全步有检查=True；REQ 全覆盖=True；ErrorCount==0=False）
- cas 物化核对（启发式旁证，权威见下行 attestation）：声明检查 7 项 / 生成体 checkData 17 次 / S 标号重合 7 / 计数缺口 0 / 形态 `FULL`；执行面 `FAIL`（计数缺口须结合绑定层隐含断言核验，非直接判缺陷）
- **cas 编译器自证（check_attestation，同批构建）**：声明 None = js 15 + binding 0 + gap 0；缺口判定以本行为权威（启发式计数仅旁证）
- man：mapping 行 8 / 规范步 6；TTR 期望/实际回声 388；厂商工具内置审计（TTR 期望/实际回声行为证据）；脚本字节级充分性不可完全外部验证
- caseir open_items：
  - IC1/IC2 为过程引用（PROC_EUICC_INITIALIZATION_SEQUENCE / PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR），只保留 initial_conditions 声明（procedure + expansion_source），过程内 APDU 不内联展开为 steps；过程体见 K_annexC2_procs.md。
  - IC3 使用 SGP.23 §2.2.3.1 默认 Profile 下载过程安装 PROFILE_OPERATIONAL2，并以 #CERT_S_SM_DP2auth_ECDSA、#TEST_DP_ADDRESS2、#CERT_S_SM_DP2pb_ECDSA 覆盖相应常量；该下载过程正文未包含在输入包，未在 steps 展开。
  - 步骤 3/4（Remove the ProfileInstallationResult and OtherSignedNotification for Install / Enable PROFILE_OPERATIONAL2）在 TC 步骤表中无 Direction/Expected/REQ；命令仅按动作语义指向 MTD_REMOVE_NOTIF / MTD_ENABLE_PROFILE，具体参数与 DER 未闭合，故未添加 status 类 SW 断言（Expected 列为空）。
  - 步骤 5/6 为行内过程引用（E 表编号步），action 逐字为 PROC_EUICC_INITIALIZATION_SEQUENCE / PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR；origin=procedure_expansion 仅用于标识过程引用行，不含内联 APDU。
  - 步骤 2/7 的 command.data 由 #LIST_NOTIF_ALL 值记号（I D.3 line 70）与 ListNotificationRequest ASN.1（S22 §5.7.9）按 X.690 DER 机械闭合为 BF2804810204F0，无凭记忆字节。
  - NOTE：比对序列号时，测试工具可通过 IC3 结束返回的 PIR 取得 <NOTIF_SEQ_NO_IN2_PIR>；本 CaseIR 在步骤 2 的响应提取该值并用于步骤内 IN2_PIR<IN2 比对。

## 7. 分类结论（封闭枚举）

| 轴 | 计数 | 说明 |
|---|---|---|
| `RUN_DIFF` | 1 | 双端失败（形态比较另见 L2/L3） |
| `SCRIPT_DIALECT` | 253 | 闭包文件差：man-only 3 / cas-only 51；命令序列差：man-only 196 / cas-only 3 |

- 置信度：heuristic；需人工复核：False

## 8. 证据路径

- man 包：`../../packages/man/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-man.zip`
- man TTR：`/Users/yuhu/cas/原料/切片/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications/logs/20260908_164133/result/ESIM_TEST_SGP_23/TC_eUICC_EnableProfile_Twice_Notifications_01_Nominal_Notifications_generation.ttr`
- cas 包/源：`../../packages/cas/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-cas.zip`
- cas TTR：`/Users/yuhu/cas/experiments/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-20261004_022948/logs/3987c141803443e4a27b675e34e98986/result/TC_eUICC_EnableProfile_Twice_Notifications/TC_eUICC_EnableProfile_Twice_Notifications_01_merged.ttr`
- spec_intl：`/Users/yuhu/cas/原料/切片/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications/spec_intl/SGP.23-v1.16_5.2.6_EnableProfile_Twice_Notifications.md`
- caseir：`/Users/yuhu/cas/experiments/5.2.6.2.1-TC_eUICC_EnableProfile_Twice_Notifications-20261008_015719/caseir_materialized_gate.json`
- step_map：`—`

