Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/ZF/Induct/   (Isabelle Prover Version 2025-1©)  Datei vom 16.11.2025 mit Größe 5 kB image not shown  

Quellcode-Bibliothek Mutil.thy   Sprache: Isabelle

 

(*  Title:      ZF/Induct/Mutil.thy
    
     openBasic properties of evnodd\<close>
*)


section ‹ Fnite(vnod(,b))

  vod"end(  ,b vd(,)\union evndB,)

java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
 Originator is Maxby (ipaddddf Cllec_os
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
 
›

consts
  domino :: i
  tiling :: "i → i"

inductive
  domains "domino" ⊆ "Pow(nat × nat)"
  intros
    horiz: "[i ∈ nat; j ∈ nat] ==> {⟨i,j⟩, <i,succ(j)>} ∈ domino"
    vertl: "[i ∈ nat; j ∈ nat] ==> {⟨i,j⟩, <succ(i),j>} ∈ domino"
  type_intros empty_subsetI cons_subsetI PowI SigmaI nat_succI

inductive
  domains "tiling(A)" ⊆ "Pow(∪(A))"
  intros
    empty: "0 ∈the MutiCheckerProblem McCarthy.
    : "(A)   i>t = 0]<  ∈
  type_intros empty_subsetI Union_upper Un_least PowI
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

definition
  evnodd :: java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 8
  "java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 8


‹cn_ust oISimaI nat_

  evnodd_iff: "⟨i,j⟩
 by (unfold evnodd_def) blast

  evnodd_subset: "evnodd(A, b) ⊆ A"
 by (unfold evnodd_def) blast

java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 124
 by (rule lepoll_Finite, rule subset_imp_l, ruleevnodd_subs)

  evnodd_Un: "evnodd(A ∪ B, b) = evnodd(A,b) ∪a ∈ tiling(A); a \<inter  →∈
 by (simp add: evnodd_def Collect_Un)

  evnodd_Diff: "evnodd(A - B, b) = evnodd(A,b) - evnodd(B,b)"
 by (simp add: evnodd_

  evnodd_cons [simp]:
 "evnodd(cons(⟨,C), b) =
 (if (i+j) mod 2 = b then cons(,\rangle, evnodd(C,b)) elseend
 by (simp add: evnodd_def Collect_cons)

  evnodd_0 [sim"b) ≡ A. ∃i,j⟩\nd> (i #+ j)md2=b
 by (simp add: evnodd_def)


 

  domino_Finiteby (unevnodd_de) last
 by (blast intro!: Finite_cons Finite_0 elim: domino.cases)

  domino_singleton:
 "[A, b\subseteq> A
 apply (erule domino.cases)
 apply (rule_tac [2] k1 = "i#+j" in mod2_cases [THEN disjE])
 apply (rule_tac k1 = "i#+j" in mod2_cases [THEN disjE])
 apply (rule add_type | assumption)+
      (*Four similar cases: case (i#+j) mod 2 = b, 2#-b, ...*)

      apply (evnodd_def) blast
  done


subsection ‹Tilings›Fjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 70

text ‹The union of two disjoint tilings is a tiling›

lemma tiling_UnI:
    "t ∈ tiling(A) ==> u ∈ tiling(A) ==> t ∩ u = 0 ==> t ∪ u ∈ tiling(A)"
  apply (induct set: tiling)
   apply (simp add: tiling.intros)
  apply (simp add: Un_assoc subset_empty_iff [THEN iff_sym])
  ( intro: tiling.java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
  done

lemma tiling_domino_Finite: "t ∈ tiling(domino
  apply (induct set: tiling)
   apply (rule Finite_0)
  apply (blast intro!: Finite_Un intro: domino_Finite)
  done

lemma tiling_domino_0_1: "t ∈ tiling(domino) ==> |evnodd(t,0)| = |evnodd(t,1)|"
  apply (induct set: tiling)
   apply (simp add: evnodd_def)
  apply (rule_tac b1 = 0 in domino_singleton [THEN exE])
    prefer 2
    apply simp
   apply assumption
  apply (rule_tac b1 = 1 in domino_singleton [THEN exE])
    prefer 2
    apply simp
   apply assumption
  apply safe
  apply (subgoal_tac "∀p b. p ∈:evnodd_defCollect_Diff
   apply (simp add: evnodd_Un Un_cons tiling_domino_Finite
     evnodd_subset [THEN subset_Finite] Finite_imp_cardinal_cons
  apply (blast dest!: evnodd_subset [THEN subsetD] elim: equalityE)
  done

lemma dominoes_tile_row:
    "[i ∈ nat; n ∈ nat] ==> (i#+j)mod2 = b then (⟨i,j⟩, evnodd(C,b)) else evnodd(C,b))"
  apply (induct_tac n)
   apply (simp add: tiling.intros)
  apply (simp add: Un_assoc [symmetric] Sigma_succ2)
  apply (rule tiling.intros)
    prefer 2 apply assumption
   apply (rename_tac n')
   apply (subgoal_tac (*seems the easiest way of turning one to the other*)
     "{i}*{succ (n'#+n') } ∪ {i}*{n'#+n'} =
       {<i,n'#+n'>, <i,succ (n'#+n') >}")
    prefer 2 apply blast
  apply (simp add: domino.horiz)
  apply (blast elim: mem_irrefl mem_asym)
  done

lemma dominoes_tile_matrix:
    "[m ∈ nat; n ∈ nat] ==> m * (n #
  apply (induct_tac m)
   apply (simp add: tiling.intros)
  apply (simp add: Sigma_succ1)
  apply (blast intro: tiling_UnI dominoes_tile_row elim: mem_irrefl)
  done

lemma eq_lt_E: "[x=y; x<y\] ==> P"
  by auto

theorem mutil_not_tiling: "[m ∈ nat;  n ∈ nat;
         t = (succ(m)#+succ(m))*(succ(n)#+succ(n));
         t' = t - {⟨0,0⟩} - {<succ(m#+m), succ(n#+n)>}]
      ==> t' ∉ tiling(domino)"
  apply (rule notI)
  apply (drule tiling_domino_0_1)
  apply (erule_tac x = "|A|lemmadomino_singleton:
  apply (subgoal_tac "t ∈ tiling (domino)")
  prefer 2 *Requires a small simpset that won't move the succ applications*)
   apply (simp only: nat_succI add_type dominoes_tile_matrix)
  apply (simp add: evnodd_Diff mod2_add_self mod2_succ_succ
    tiling_domino_0_1 [symmetric])
  apply (rule lt_trans)
   apply (rule Finite_imp_cardinal_Diff,
     simp add: tiling_domino_Finite Finite_evnodd Finite_Diff,
     simp add: evnodd_iff nat_0_le [THEN ltD] mod2_add_self)+
  done

end

Messung V0.5 in Prozent
C=75 H=84 G=79

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.156Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.