公开副本:本地路径及实验主机已脱敏;图片/数据拆为站内资源。原报告中的校验哈希对应本地原件,不认证公开副本字节。研究分类与范围仍未获人工金标或外部独立审查。
ODK Collect · Download / Rep1
121次Ⅰ输入,1个源State;121次精确映射,0次历史未映射。
交互查看全部成员完整案例JSON原始input/receipt/event摘包可关联GUI快照原始收尾图公开副本
A / B / C
| 口径 | State数 | 与C交集 |
|---|---|---|
| A上轮Header g16s70 | 4 | 4 |
| B原图 | 0 | 0 |
| B去明确返回 | 0 | 0 |
| C发生参考 | 9 | 9 |
C是有限的入口触发发生参考,不是排他State金标。B的C外节点需区分共享/扩展/明确移交。图上聚合路径不冒充连续轨迹,confirmed=0保留。
真实入口示例:Source、控件与Target
g16e211:325
source g1s1
alignment: unverified_state_representative
target g16s70
alignment: unverified_state_representative
Action、GUI与原始输入/转换定位
{
"transition_id": "g16e211:325",
"state": "g1s1",
"target_state": "g16s70",
"source_activity": "org.odk.collect.android.mainmenu.MainMenuActivity",
"target_activity": "org.odk.collect.android.activities.FormDownloadListActivity",
"model_action": "g1a8",
"input_model_action": "g1a8",
"action_type": "MODEL_CLICK",
"identity": "MODEL_CLICK|/*[@class=\"android.widget.FrameLayout\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=0][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.ScrollView\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=0][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.ScrollView\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=2][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.FrameLayout\"][@resource-id=\"org.odk.collect.android:id/get_forms\"][@text=\"\"][@content-desc=\"\"][@index=4][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.TextView\"][@resource-id=\"org.odk.collect.android:id/name\"][@text=\"Download\"][@content-desc=\"\"][@index=4][@enabled='true'][@clickable='true'][@checkable='false'][@long-clickable='false'][@scrollable='false'][@enabled='true'][@clickable='true'][@checkable='false'][@long-clickable='false'][@scrollable='false']",
"resource_id": "org.odk.collect.android:id/name",
"text": "Download",
"content_desc": "",
"class": "android.widget.TextView",
"bounds": [
231,
1144,
912,
1207
],
"planned_input_text": null,
"source_gui_id": 456,
"target_gui_id": 457,
"final_exact": true,
"edge_id": "g16e211",
"input_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-audit/inputs/generated-1728.json",
"receipt_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-receipts/transition-g16e211-325.json",
"event_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-events.jsonl",
"event_line": 852
}全部Ⅰ入口成员
| Source | ModelAction | 控件/text/desc | 执行次数 | Targets |
|---|---|---|---|---|
| g1s1 | g1a8 | org.odk.collect.android:id/name / Download / | 121 | {'g1s2': 28, 'g16s70': 90, 'g1s1': 2, 'g16s71': 1} |
关键反例:具体确认输入
g16e248:1317
source g1s1
alignment: unverified_state_representative
target g16s70
alignment: unverified_state_representative
Action、GUI与原始输入/转换定位
{
"transition_id": "g16e248:1317",
"state": "g1s1",
"target_state": "g16s70",
"source_activity": "org.odk.collect.android.mainmenu.MainMenuActivity",
"target_activity": "org.odk.collect.android.activities.FormDownloadListActivity",
"model_action": "g1a5",
"input_model_action": "g1a5",
"action_type": "MODEL_CLICK",
"identity": "MODEL_CLICK|/*[@class=\"android.widget.FrameLayout\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=0][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.ScrollView\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=0][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.ScrollView\"][@resource-id=\"\"][@text=\"\"][@content-desc=\"\"][@index=2][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.FrameLayout\"][@resource-id=\"org.odk.collect.android:id/review_data\"][@text=\"\"][@content-desc=\"\"][@index=1][@enabled='true'][@clickable='false'][@checkable='false'][@long-clickable='false'][@scrollable='false']/*[@class=\"android.widget.TextView\"][@resource-id=\"org.odk.collect.android:id/name\"][@text=\"Drafts\"][@content-desc=\"\"][@index=1][@enabled='true'][@clickable='true'][@checkable='false'][@long-clickable='false'][@scrollable='false'][@enabled='true'][@clickable='true'][@checkable='false'][@long-clickable='false'][@scrollable='false']",
"resource_id": "org.odk.collect.android:id/name",
"text": "Drafts",
"content_desc": "",
"class": "android.widget.TextView",
"bounds": [
231,
515,
912,
578
],
"planned_input_text": null,
"source_gui_id": 1522,
"target_gui_id": 1523,
"final_exact": true,
"edge_id": "g16e248",
"input_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-audit/inputs/generated-7402.json",
"receipt_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-receipts/transition-g16e248-1317.json",
"event_path": "[WORKSPACE]/experiments/guitaboo_formal_emulator_20261103T1725/formal-runs/rep1-pure-batch1/odkcollect-rep1-pure-b1/formal/device-output/formal/sata-org.odk.collect.android-ape-sata-running-minutes-60/jev-events.jsonl",
"event_line": 3864
}分叉、汇合与Dominator局部片段
g16s70 / g16s71 → g1s2
汇合点子树:g1s2;不包含上游两个分支。
g16s70 → [g16e232; confirmed=1] → g1s2
g16s71 → [g16e215; confirmed=1] → g1s2
g16s71 / g1s4 → g1s2
汇合点子树:g1s2;不包含上游两个分支。
g16s71 → [g16e215; confirmed=1] → g1s2
g1s4 → [g1e4; confirmed=3] → g1s3 → [g1e6; confirmed=1] → g1s2
g16s70 / g1s2 → g1s3
汇合点子树:g1s3;不包含上游两个分支。
g16s70 → [g16e212; confirmed=1] → g1s4 → [g1e4; confirmed=3] → g1s3
g1s2 → [g1e2; confirmed=20] → g1s3
g16s70 / g1s3 → g1s4
汇合点子树:g1s4;不包含上游两个分支。
g16s70 → [g16e212; confirmed=1] → g1s4
g1s3 → [g1e3; confirmed=5] → g1s4
g1s2 / g1s3 → g1s4
汇合点子树:g1s4;不包含上游两个分支。
g1s2 → [g16e233; confirmed=2] → g16s70 → [g16e212; confirmed=1] → g1s4
g1s3 → [g1e3; confirmed=5] → g1s4
删完入口仍可达的全部参考State路径
这些是聚合UTG路径;每条边的确认输入ID与次数见完整案例JSON。初始已不可达单列,不当作删边恢复。
original → g16s70
g1s1 → [g16e248; confirmed=1] → g16s70
still reachable after all observed confirmed entry edges cut
original → g16s71
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e214; confirmed=4] → g16s71
still reachable after all observed confirmed entry edges cut
original → g16s72
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72
still reachable after all observed confirmed entry edges cut
original → g16s73
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72 → [g16e218; confirmed=1] → g16s73
still reachable after all observed confirmed entry edges cut
original → g16s74
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72 → [g16e225; confirmed=1] → g16s74
still reachable after all observed confirmed entry edges cut
original → g1s2
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e232; confirmed=1] → g1s2
still reachable after all observed confirmed entry edges cut
original → g1s3
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e212; confirmed=1] → g1s4 → [g1e4; confirmed=3] → g1s3
still reachable after all observed confirmed entry edges cut
original → g1s4
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e212; confirmed=1] → g1s4
still reachable after all observed confirmed entry edges cut
original → g1s5
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e232; confirmed=1] → g1s2 → [g1e14; confirmed=1] → g1s5
still reachable after all observed confirmed entry edges cut
forward → g16s70
g1s1 → [g16e248; confirmed=1] → g16s70
still reachable after all observed confirmed entry edges cut
forward → g16s71
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e214; confirmed=4] → g16s71
still reachable after all observed confirmed entry edges cut
forward → g16s72
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72
still reachable after all observed confirmed entry edges cut
forward → g16s73
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72 → [g16e218; confirmed=1] → g16s73
still reachable after all observed confirmed entry edges cut
forward → g16s74
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e217; confirmed=2] → g16s72 → [g16e225; confirmed=1] → g16s74
still reachable after all observed confirmed entry edges cut
forward → g1s2
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e232; confirmed=1] → g1s2
still reachable after all observed confirmed entry edges cut
forward → g1s3
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e212; confirmed=1] → g1s4 → [g1e4; confirmed=3] → g1s3
still reachable after all observed confirmed entry edges cut
forward → g1s4
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e212; confirmed=1] → g1s4
still reachable after all observed confirmed entry edges cut
forward → g1s5
g1s1 → [g16e248; confirmed=1] → g16s70 → [g16e232; confirmed=1] → g1s2 → [g1e14; confirmed=1] → g1s5
still reachable after all observed confirmed entry edges cut
C发生参考:逐State GUI与范围身份
A True / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A False / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A True / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A True / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A True / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A False / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A False / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A False / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
A False / B原图 False / B去返回 False
org.odk.collect.android.activities.FormDownloadListActivity历史代表图,不认证同次对齐。
一条真实连续轨迹:完整步骤
入口 g16e211:325,停止:exit_to_outside。只连接同GUI、同抽象版本的相邻确认执行。
| 确认转换 | Source | 动作 | Target | 边界 |
|---|---|---|---|---|
| g16e212:326 | g16s70 | MODEL_CLICK org.odk.collect.android:id/menu_sort | g1s4 | core |
| g16e213:327 | g1s4 | MODEL_BACK | g16s70 | core |
| g16e214:328 | g16s70 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s71 | core |
| g16e215:329 | g16s71 | MODEL_CLICK org.odk.collect.android:id/refresh_button | g1s2 | core |
| g16e216:330 | g1s2 | MODEL_BACK | g16s70 | core |
| g16e217:331 | g16s70 | MODEL_CLICK org.odk.collect.android:id/menu_filter | g16s72 | core |
| g16e218:332 | g16s72 | MODEL_CLICK | g16s73 | core |
| g16e219:333 | g16s73 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s73 | core |
| g16e220:334 | g16s73 | MODEL_CLICK | g16s72 | core |
| g16e221:335 | g16s72 | MODEL_CLICK | g16s70 | core |
| g16e217:336 | g16s70 | MODEL_CLICK org.odk.collect.android:id/menu_filter | g16s72 | core |
| g16e222:337 | g16s72 | MODEL_CLICK org.odk.collect.android:id/refresh_button | g16s72 | core |
| g16e223:338 | g16s72 | MODEL_CLICK org.odk.collect.android:id/toggle_button | g16s72 | core |
| g16e224:339 | g16s72 | MODEL_LONG_CLICK org.odk.collect.android:id/search_src_text | g16s72 | core |
| g16e225:340 | g16s72 | MODEL_CLICK org.odk.collect.android:id/search_src_text | g16s74 | core |
| g16e226:341 | g16s74 | MODEL_CLICK org.odk.collect.android:id/search_close_btn | g16s72 | core |
| g16e227:342 | g16s72 | MODEL_CLICK org.odk.collect.android:id/search_src_text | g16s72 | core |
| g16e228:343 | g16s72 | MODEL_CLICK org.odk.collect.android:id/add_button | g16s72 | core |
| g16e229:344 | g16s72 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s73 | core |
| g16e220:345 | g16s73 | MODEL_CLICK | g16s72 | core |
| g16e221:346 | g16s72 | MODEL_CLICK | g16s70 | core |
| g16e214:347 | g16s70 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s71 | core |
| g16e230:348 | g16s71 | MODEL_CLICK | g16s70 | core |
| g16e214:349 | g16s70 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s71 | core |
| g16e231:350 | g16s71 | MODEL_CLICK org.odk.collect.android:id/toggle_button | g16s70 | core |
| g16e214:351 | g16s70 | MODEL_CLICK org.odk.collect.android:id/checkbox | g16s71 | core |
| g16e230:352 | g16s71 | MODEL_CLICK | g16s70 | core |
| g16e232:353 | g16s70 | MODEL_CLICK org.odk.collect.android:id/add_button | g1s2 | core |
| g1e1:354 | g1s2 | MODEL_BACK | g1s2 | core |
| g16e233:355 | g1s2 | MODEL_CLICK android:id/button2 | g16s70 | core |
| g16e234:356 | g16s70 | MODEL_CLICK | g16s71 | core |
| g16e235:357 | g16s71 | MODEL_BACK | g1s1 | outside |
