space DoubleSlit {
properties {
dimension: Topology<Number>(2)
continuous: Topology<Boolean>(true)
quantum: Topology<Boolean>(true)
}
shape Photon {
properties {
wavefunction: Topology<Complex>
position: Topology<Vector2D>
momentum: Topology<Vector2D>
phase: Topology<Number>
coherence: Topology<Boolean>(true)
}
// 波動関数の時間発展
mapping evolve() {
properties {
quantum: true
continuous: true
reversible: true
}
path {
propagate_wavefunction ->
interact_with_slits ->
calculate_interference ->
update_probability_density
}
}
}
// スリット構造の定義
shape DoubleSlitStructure {
properties {
slit_width: Topology<Number>
slit_separation: Topology<Number>
screen_distance: Topology<Number>
}
mapping interact() {
properties {
quantum: true
continuous: false
}
path {
calculate_diffraction ->
apply_boundary_conditions ->
update_wavefunction
}
}
}
// 検出スクリーン
shape DetectionScreen {
properties {
size: Topology<Vector2D>
resolution: Topology<Vector2D>
detection_probability: Topology<Array<Number>>
}
mapping detect() {
properties {
quantum: false
classical: true
observable: true
}
path {
collapse_wavefunction ->
register_impact ->
accumulate_pattern
}
}
}
}