Skip to content

[P2][corpus] sorry に推移的に依存する公開定理が verified として表示される #146

Description

@uda-lab-agent

sorry を含む宣言に依存している公開定理が、proof_status を持たないため site 上で verified として表示される。

schema の定義

docs/schemas/corpus.schema.jsoncontains-sorry を次のように定義している。

'contains-sorry' = the proof body has a literal sorry (directly or via a sorry-dependent private helper).

つまり推移的な依存も対象である。一方、proof_status欠落は verified と解釈される(同 schema)。したがって依存側に印が無いと、未証明に依存する定理が完了済みとして提示される。

実測(PIN 2a0679058d97979a4fba589bd92d0786ed09b97f

自身の証明本体に literal sorry を持つ宣言は 6 件で、いずれも corpus 側で contains-sorry が付いている(notes#74 Wave 12 / PR #145 で 1 件の欠落を復元し、test/issue74_proof_status_preserved.test.py で固定した)。

問題はその呼び出し側である。sorry を持つ宣言は private または同一ファイル内にあるため、呼び出し元を同一ファイル内で機械的に洗い出した結果:

呼び出し元(tier: full・public) 使っている sorry 宣言 呼び出し元の proof_status
LerayHopf.Bochner.timeConvL2_weakDeriv_comm timeConv_prod_integrableprivate なし → verified 扱い
LerayHopf.Bochner.timeMollification_of_w1pTime timeMollification_exists なし → verified 扱い
LerayHopf.Bochner.w1pTime_continuous_in_Vprime isWeakTimeDeriv_primitive なし → verified 扱い

いずれも Bochner の実験的な時間層のもので、本 issue 起票時点で 3 件とも corpus ファイルは存在するが proof_status を持たない

1 件目は schema の文言に真正面から該当する

timeConv_prod_integrableprivate であり、schema の「via a sorry-dependent private helper」にそのまま当てはまる。証明本体に呼び出しがあることをソースで確認済み。

-- TimeMollifierInterval.lean, timeConvL2_weakDeriv_comm の証明中
have hint_u := timeConv_prod_integrable hψ'cont hψ'cs hρ hu

なお残っている sorry は Fubini 適用の側条件(コンパクトな箱の上での $L^1$ 評価)であり、上流に ALLOW_SORRY の注記がある。入れ替えの等式そのものは無条件に証明されている。

2・3 件目は schema の文言が明示していない

timeMollification_existsisWeakTimeDeriv_primitiveprivate ではない(それ自体が contains-sorry として印付けされている公開宣言)。schema の文言は private helper 経由の場合しか述べていないため、公開宣言経由の推移的依存を印付けするかどうかは方針判断になる。

判断が必要な点

  • 推移的依存の印付けを、private helper 経由に限るか、公開宣言経由も含めるか(schema の文言を実態に合わせて更新する)
  • 含める場合、どこまで推移閉包を辿るか(1 段か、全段か)。全段だと Bochner 実験層に依存する広い範囲に波及しうる
  • 印付けの手段: 手作業か、extracted/decls.json の依存情報から機械生成するか

機械化の障害: decls.jsonuses は今回の依存を捉えていないtimeConvL2_weakDeriv_commusestimeConv_prod_integrable が現れない)。private 宣言が依存グラフに記録されていない可能性が高く、推移閉包を自動で出すには抽出側の変更か Lean 環境からの取得が要る。

Acceptance criteria

  • 推移的依存の印付け方針が決まり、schema の記述が実態と一致している
  • 上表の 3 件について、方針に沿った状態になっている(印を付けるか、付けない理由が記録されている)
  • 機械的に検査する手段があるか、無い場合はその旨が記録されている

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions