K example, Soundness, Completeness, 4.6, page 18

This module proves one-step soundness and one-step completeness for K and derives then soundness, completeness, cut-elimination and contraction for K by using the generic theorems.
Note that all assumptions from the generic theorems are discharched here (besides classical_logic, of course).

Require Export k_semantics complete.

Section K_sound.

  Hypothesis pred_ext : (A : Type)(P Q : AProp),
   ((a : A), P a Q a) → P = Q.

One-step soundness

Derive soundness


  Theorem sound_k_GRC : (s : sequent KV KL),
    classical_logic
    provable (GRC_set k_rules) (empty_sequent_set KV KL) s
      valid_all_models 0 (k_lambda pred_ext) s.

  Theorem sound_k_GR : (s : sequent KV KL),
    classical_logic
    provable (GR_set k_rules) (empty_sequent_set KV KL) s
      valid_all_models 0 (k_lambda pred_ext) s.

One-step completeness


  Lemma k_rules_one_step_cut_free_complete :
    classical_logic
      one_step_cut_free_complete 0 (k_lambda pred_ext) k_rules
                                 one_step_rule_set_k_rules.

Derive completeness, cut-elimination and contraction


  Theorem k_complete : (s : sequent KV KL),
    classical_logic
    valid_all_models 0 (k_lambda pred_ext) s
      provable (GR_set k_rules) (empty_sequent_set KV KL) s.

  Theorem k_semantic_cut :
    classical_logic
      admissible_rule_set (GR_set k_rules) (empty_sequent_set KV KL)
                          is_cut_rule.

  Theorem k_semantic_contraction :
    classical_logic
      admissible_rule_set (GR_set k_rules) (empty_sequent_set KV KL)
                          is_contraction_rule.

End K_sound.