Generate a YGOPro Lua script for the following Yu-Gi-Oh card effect:
This monster cannot be Normal Summoned or Set. This card can only be Special Summoned by Tributing "Petit Moth" on the 4th of your turns after "Petit Moth" has been equipped with "Cocoon of Evolution".
--グレート・モス
--Great Moth
local s,id=GetID()
function s.initial_effect(c)
	c:EnableReviveLimit()
	--special summon
	local e1=Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_FIELD)
	e1:SetCode(EFFECT_SPSUMMON_PROC)
	e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
	e1:SetRange(LOCATION_HAND)
	e1:SetCondition(s.spcon)
	e1:SetTarget(s.sptg)
	e1:SetOperation(s.spop)
	c:RegisterEffect(e1)
end
s.listed_names={40240595,58192742}
function s.eqfilter(c)
	return c:IsCode(40240595) and c:GetTurnCounter()>=4
end
function s.rfilter(c,ft,tp)
	return c:IsCode(58192742) and c:GetEquipGroup():IsExists(s.eqfilter,1,nil)
end
function s.spcon(e,c)
	if c==nil then return true end
	return Duel.CheckReleaseGroup(c:GetControler(),s.rfilter,1,false,1,true,c,c:GetControler(),nil,false,nil)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,c)
	local g=Duel.SelectReleaseGroup(tp,s.rfilter,1,1,false,true,true,c,nil,nil,false,nil)
	if g then
		g:KeepAlive()
		e:SetLabelObject(g)
	return true
	end
	return false
end
function s.spop(e,tp,eg,ep,ev,re,r,rp,c)
	local g=e:GetLabelObject()
	if not g then return end
	Duel.Release(g,REASON_COST)
	g:DeleteGroup()
end