Изабель: проблема с setprod

Имеет ли место следующее равенство в Изабель:

setprod f (UNIV :: 'n∷finite set) = setprod (λx. x) (f ` (UNIV :: 'n∷finite set))

Если да, как я могу это доказать?

(* tested with Isabelle2013-2 *)
theory Notepad
imports
  Main
  "~~/src/HOL/Library/Polynomial"
begin

notepad
begin{
fix f :: "'n∷finite ⇒ ('a::comm_ring_1 poly)"

have "finite (UNIV :: 'n∷finite set)" by simp
from this have "setprod f (UNIV :: 'n∷finite set) = setprod (λx. x) (f ` (UNIV :: 'n∷finite set))" 
sorry (* can this be proven ? *)

1 ответ

Решение

Лемма справедлива, только если вы добавите предположение inj f основываясь на этом f инъективно Тогда лемма следует из леммы библиотеки setprod_reindex_id, который можно найти с помощью команды find_theorems setprod image,

setprod_reindex_id [unfolded id_def] дает обобщенную версию леммы, которую вы просили.

Другие вопросы по тегам