[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Theorem base for Specification copy

This is a listing of all goals defined over the current specification. Axioms are yellow, proof obligations purple and theorems green. Click on individual names to get more information on the proof.

Name: Sequent: Type:
An Axiom
An Axiom
⊦ copy-node-prepost(H0, H, map) ↔ (∃ H1. H0 ∪ H1 = H ∧ H0 ⊥ H1 ∧ dom map ⊆ dom H0 ∧ ran map = dom H1 ∧ closed(H0) ∧ closed(H1) ∧ inj(map)) An Axiom
⊦ copy-edges-prepost(succ, H0, H, map) ↔ (∃ H1. H0 ∪ H1 = H ∧ H0 ⊥ H1 ∧ dom map ⊆ dom H0 ∧ ran map = dom H1 ∧ closed(succ, H1) ∧ closed(H0) ∧ closed(H1) ∧ inj(map)) An Axiom
An Axiom
⊦ recursive-property(φn, φe) ↔ (∀ n. recursive-node-property(n, φn) ∧ recursive-edges-property(n, φe)) An Axiom
⊦ recursive-edges-property(n, φe) ↔ (∀ succ0, succ1, H1, map1. [H0 := H1; map0 := map1; copy_edges#(succ0; succ1, map1, H1): n ] φe(succ0, succ1, H0, H1, map0, map1)) An Axiom
⊦ recursive-node-property(n, φn) ↔ (∀ r0, r1, H1, map1. [H0 := H1; map0 := map1; copy_node#(r0; r1, map1, H1): n ] φn(r0, r1, H0, H1, map0, map1)) An Axiom
r0 ∈ H, closed(H), H0 = H ⊦ [copy#(r0; r1, H)] ∀ r2. reachable(r1, r2, H) → ¬ r2 ∈ H0 ∧ r2 ∈ H A User Theorem
H0 = H, map0 = map ⊦ ⟪copy_edges#(∅; succ1, map, H)⟫ (H0 = H ∧ map0 = map ∧ succ1 = ∅) A User Theorem
H1 = H, map1 = map, closed(succ0, H0), copy-edges-prepost(succ1, H0, H, map), ∀ r0, r1, map0, H. map ⊆ map0 ∧ copy-node-prepost(H0, H, map0) ∧ ¬ r0 ∈ map0 ∧ r0 ∈ H0 → ⟪map1 := map0, H1 := H; copy_node#(r0; r1, map0, H)⟫ (copy-node-prepost(H0, H, map0) ∧ H1 ⊆ H ∧ map1 ⊆ map0 ∧ r0 ∈ map0 ∧ map0[r0] = r1) ⊦ ⟪copy_edges#(succ0; succ1, map, H)⟫ (closed(succ0, H0) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ copy-edges-prepost(succ1, H0, H, map)) A User Theorem
⊦ recursive-property (λ r0, r1, H0, H1, map0, map1. r0 ∈ map1 ∧ map1[r0] = r1, λ succ0, succ1, H0, H1, map0, map1. succ1 = apply(succ0, map1)) A User Theorem
⊦ recursive-property (λ r0, r1, H0, H1, map0, map1. H0 ⊆ H1 ∧ map0 ⊆ map1, λ succ0, succ1, H0, H1, map0, map1. H0 ⊆ H1 ∧ map0 ⊆ map1) A User Theorem
r0 ∈ H0, ¬ r0 ∈ map, H1 = H, map1 = map, copy-node-prepost(H0, H, map) ⊦ ⟪copy_node#(r0; r1, map, H)⟫ (copy-node-prepost(H0, H, map) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ r0 ∈ map ∧ map[r0] = r1) A User Theorem
r0 ∈ H, closed(H), H0 = H ⊦ ⟪copy#(r0; r1, H)⟫ (H0 ⊆ H) A User Theorem
⊦ closed(H) → (¬ copy-node-prepost(H, H, ∅) ↔ false) A User Theorem
⊦ copy-node-prepost(H0, H, map) → (¬ copy-edges-prepost(∅, H0, H, map) ↔ false) A User Theorem
⊦ copy-edges-prepost(succ, H0, H, map) → (¬ copy-node-prepost(H0, H, map) ↔ false) A User Theorem
⊦ recursive-edges-property(n, φe) ↔ recursive-edges-property(n, φe) ∧ [H0 := H1; map0 := map1; copy_edges#(succ0; succ1, map1, H1): n ] φe(succ0, succ1, H0, H1, map0, map1) A User Theorem
⊦ recursive-node-property(n, φn) ↔ recursive-node-property(n, φn) ∧ [H0 := H1; map0 := map1; copy_node#(r0; r1, map1, H1): n ] φn(r0, r1, H0, H1, map0, map1) A User Theorem
r0 ∈ H, closed(H) ⊦ ⟪copy#(r0; r1, H)⟫ true A User Theorem
H0 = H, map0 = map, r0 ∈ map ⊦ ⟪copy_node#(r0; r1, map, H)⟫ (H0 = H ∧ map0 = map ∧ r0 ∈ map ∧ r1 = map[r0]) A User Theorem
⊦ copy-node-prepost(H0, H, map) ∧ r ∈ H0 → (¬ r ∈ H ↔ false) A User Theorem
∀ m. (∀ n. n < m → recursive-node-property(n, φn) ∧ recursive-edges-property(n, φe)) → (∀ r0, r1, H1, map1. [H0 := H1; map0 := map1; copy_node#(r0; r1, map1, H1): m ] φn(r0, r1, H0, H1, map0, map1)) ∧ (∀ succ0, succ1, H1, map1. [H0 := H1; map0 := map1; copy_edges#(succ0; succ1, map1, H1): m ] φe(succ0, succ1, H0, H1, map0, map1)) ⊦ recursive-property(φn, φe) A User Theorem
⊦ copy-node-prepost(H0, H, map) → # map ≤ # H0 A User Theorem
⊦ recursive-property(φn0, φe0) → ( ¬ ¬ recursive-edges-property(n, φe1) ↔ recursive-edges-property (n, λ succ0, succ1, H0, H1, map0, map1. φe0(succ0, succ1, H0, H1, map0, map1) ∧ φe1(succ0, succ1, H0, H1, map0, map1))) A User Theorem
⊦ recursive-property(φn0, φe0) → ( ¬ ¬ recursive-node-property(n, φn1) ↔ recursive-node-property(n, λ r0, r1, H0, H1, map0, map1. φn0(r0, r1, H0, H1, map0, map1) ∧ φn1(r0, r1, H0, H1, map0, map1))) A User Theorem
⊦ H ⊆ H A User Theorem
⊦ map0 ⊆ map1 → # map0 ≤ # map1 A User Theorem
⊦ H0 ⊆ H1 ∧ H1 ⊆ H2 → H0 ⊆ H2 A User Theorem