我正试图证明以下引理:
SELECT
-- Campaign
( SELECT
'@Type' = 'C'
,'campaign/campaign_code' = mc.campaign_code
,'campaign/camapaign_start_date' = mc.camapaign_start_date
FOR XML PATH('marketCampaign'), TYPE),
-- Activity
(SELECT
'@Type' = 'A'
,'activity/activity_code' = mc.activity_code
,'activity/campaign_code' = mc.campaign_code
FOR XML PATH('marketCampaign'), TYPE),
-- Message
(SELECT
'@Type' = 'I'
,'message/activity_code' = mc.activity_code
,'message/target_email_address' = ISNULL(mc.comms_supporter_id,'')
,'message/email_content' = '===TEST ===='
,'message/creationDate' = format( DATEADD(month, -3, getdate()), 'dd/MM/yyyy')
,'message/time' = '00:00:00'
FOR XML PATH('marketCampaign'), TYPE)
FROM marketingCampaign mc
FOR XML PATH(''), ROOT('xml')
但是我不能这样做,因为可以证明using System;
namespace Exercise4
{
class Program
{
static void Main(string[] args)
{
Start:
Console.WriteLine("Za login stisnete 1 ili za register 2");
var input = Console.ReadLine();
bool successfull = false;
while (!successfull)
{
var arrUsers = new Users[]
{
new Users("tomas","samsung",2605),
new Users("stefan","pasle",15),
new Users("dimitar","jovanov",32)
};
if (input == "1")
{
Console.WriteLine("Write your username:");
var username = Console.ReadLine();
Console.WriteLine("Enter your password:");
var password = Console.ReadLine();
foreach (Users user in arrUsers)
{
if (username == user.username && password == user.password)
{
Console.WriteLine("You have successfully logged in !!!");
Console.ReadLine();
successfull = true;
break;
}
else if (username != user.username || password != user.password)
{
Console.WriteLine("Your username or password is incorect, try again !!!");
Console.ReadLine();
break;
}
}
}
else if (input == "2")
{
Console.WriteLine("Enter your username:");
var username = Console.ReadLine();
Console.WriteLine("Enter your password:");
var password = Console.ReadLine();
Console.WriteLine("Enter your id:");
int id = int.Parse(Console.ReadLine());
Array.Resize(ref arrUsers, arrUsers.Length + 1);
arrUsers[arrUsers.Length - 1] = new Users(username,password, id);
successfull = true;
goto Start;
}
else
{
Console.WriteLine("Try again !!!");
break;
}
}
}
}
}
很简单。可能是因为lemma
fixes A B C D :: "((real, 3) vec, 3) vec"
and v m :: " (real, 3) vec"
assumes "∃ A. m = D ** A ** B *v v"
shows "∃ A. m = D ** B ** A *v v"
!。谁能解释为什么Isabelle / HOL无法证明这一点?
谢谢