There are some individuals who have reached their senior years that still have substantial debt. Now they are retired they do not have the funds coming in to pay down these debts and this has left them in a serious financial situation. The one thing they do have in their favor is that their home is paid off so they are concerned about going bankrupt.
Instead, they may be considering looking at a reverse mortgage to generate the funds to deal with the bills they are not able to pay. Although this may be an option, a reverse mortgage may not be as straight forward as it seems. It can be complex and it can have some serious repercussions to it. If it is not paid back then the accruing interest can eliminate any of the equity that is left. Individuals that are in a bad financial situation no matter what their age should seek out the opinion of a qualified bankruptcy attorney before making any type of move to deal with the debt such as this. Bankruptcy may be a better form of debt relief depending on the circumstances of the individual.
Of course the big concern is losing the home in the bankruptcy but there are exemptions that can be utilized in this course of action, and chances are the home will be one of these exemptions. If you have already obtained a reverse mortgage and are still in grave financial difficulties then once again you may need to consider bankruptcy and you will still need proper professional assistance.


Bashing Rove is in fashion these days, but watch this video carefully. In addition to be a prolific fundraiser for American Crossroads, which played a critical role in the 2010 elections, Rove is one of the more articulate spokesmen for taking on the Obama message machine.
Rove's searing intellect always impresses, but Rove's weakness is that he routinely puts acquisition of power ahead of adherence to principle. And he's an enemy of the Tea Party primarily because of the Tea Party's anti-establishment bent.
His strategic brilliance notwithstanding, Rove's grand era of big government "conservatism" backfired and helped to create perfect conditions for the rise of the Democrats in 2006 and 2008. Rove is too cynical, too short-sighted, and he puts cronyism before country.
Ceteris paribus, I'd always choose someone from outside of the Rove network for any position of government influence.
Perhaps we should entertain the notion that Rove is an evil power hunger lunatic that backed the wrong party and turned them too much like the Democrats in being corrupt and fiscally irresponsible. I.e., Rove is a RINO!
I've been trying to figure out why he's a Republican. So far, I haven't come up with any good theories.
He's a republican because his masters in the Fed. Reserve Banking cartel (aka bailout banks and friends) have positioned him as a Republican strategist to keep that half of the country in line. Worked for a decade, but the farce is wearing thin.


text:
Rose Parade and Rose Bowl 2020
SPTOR's Coffee for a Cause | A Unique Fundraiser for Next Year's Rose Parade Float
A South Pasadena resident and member of the South Pasadena Tournament of Roses Committee is delivering roasted coffee beans on his bike – about a pound full for $25 – to help pay for the city's float in the annual Rose Parade
Bill Glazier
PHOTO: Provided by Alan Vlacich | SouthPasadenan.com News | South Pasadena resident Alan Vlacich, a member of the South Pasadena Tournament of Roses Committee, is delivering coffee on his bike – about a pound full for $25 – to help pay for the city's float in the annual Rose Parade
Alan Vlacich is using pedal power to pump much-needed funds into a beloved annual South Pasadena project.
The city's entry in the Rose Parade costs roughly $100,000 to construct when it comes to steel and flowers, and with two major fundraising efforts in question, Vlacich is making good use of his bicycle these days to generate dollars as a member of the committee responsible for building it.
"We all take for granted that our float will be built by the South Pasadena Tournament of Roses (SPTOR), and so many other things in South Pasadena," said Vlacich, who serves as co-chair of the organization's golf tournament with John Vandercook.
The June tournament has been postponed and a popular September car show could be canceled or also delayed this year on account of the novel coronavirus outbreak, he said, making fundraising for the SPTOR Committee extremely difficult.
"There certainly are a lot of things much more important in the world than building a float, but the So Pas float effort is one of the many reasons why we love and live in the city, just as is the 4th of July Parade and fireworks show," explained Vlacich, a longtime fixture in town, known for his generosity and giving back attitude, much like his wife, Lin, a respected realtor in the community.
A little ingenuity, mixed with goodwill and a personal passion, was all it took for Vlacich to come up with the idea of cycling through city neighborhoods and region dropping off his home-roasted coffee for a $25 donation to the South Pasadena Tournament of Roses.
"I have been roasting coffee at home for over 10 years," explained the good-natured South Pasadenan. "I use an air-popcorn maker to roast my green beans which I purchase online at Sweet Maria's and U-Roast Em. I typically like Sumatra coffee and Maui coffee but lately one of my favorites is Guatemalan coffee. I roast one-quarter pound at a time and it takes about four minutes."
Vlacich recently posted a video of my coffee roasting technique on social media, noting, "I love sharing my coffee with close friends. After I dropped off some coffee to a close friend, I got the idea that maybe I could do this to raise funds for SPTOR. I'll buy the green beans, roast it, package it, and deliver it on my bike, which makes it a little more unique and good exercise too. The coffee bags I use have a capacity of a little less than a pound."
Climbing on either his Trek road or Klein mountain bike, Vlacich, who averages more than 100 miles a month on his two-wheeler, looks forward to cycling over to area residences, practicing social-distancing, of course, and delivering his special coffee beans.
PHOTO: Provided by Alan Vlacich | SouthPasadenan.com News | Two SPTOR fundraising events are in question, so Vlacich has come up with a unique idea to help raise funds for the organization during the novel coronavirus outbreak. He can be reached at
avlacich@gmail.com or (626) 233-5570
He really did not know what to expect from people wanting to donate, but the second person he made a delivery to donated $500 to the South Pasadena Tournament of Roses. "She and her husband are extremely generous to SPTOR with raffle tickets and bidding at the Crunch Time Party," explained Vlacich, who typically makes a 20-mile loop when he climbs on his bike for exercise, cycling up to Sacred Heart Academy in La Cañada Flintridge, pedaling around Pasadena before returning home.
"That was encouraging for me to know that this could be a worthwhile during this difficult time," he continued about the sizeable donation. "For most of the deliveries there is a check waiting for me to pick up and leave the coffee. I have talked to a couple of very close friends from a safe 10-feet away but most of the deliveries are just left at the front door. I have made about 12 deliveries and have three scheduled for tomorrow. The response to my social media posts seems to be picking up."
Along with the annual golf tournament and Cruz'n for Roses Hot Rod & Classic Car Show that draws thousands each year, the SPTOR sells $100 raffle tickets with the winners receiving top seats at either the Rose Parade or Rose Bowl Game, the Crunch-Time Party, featuring dinner and silent and live auctions at the War Memorial Building in late December, and a donation letter asking local citizens to financially support the float.
"Many people contribute to more than one of those events," said Vlacich. "But this year is going to be particularly difficult with so many people and businesses struggling. And then there is the challenge of safety building the float in a timely fashion. Things may be back to normal in December to decorate the float but we still need to raise the funds now and start building the float soon. SPTOR has so much history being oldest float in the parade."
Vlacich has been involved in the SPTOR Committee for more than 20 years, holding the role as president in 2002 and 2003. Along with his current co-chair duties with the yearly golf tourney, he heads up the organization's $100 raffle ticket sales campaign designed to raise $20,000.
The city's float is a highly meaningful entity that Vlacich is grateful for the support from so many. "It is so inspiring to see the whole city get together throughout the year for a common goal," he said, hoping more coffee lovers will contact him at avlacich@gmail.com or (626) 233-5570 with a message to roll on over with some of his coffee beans.
Not long after he should be on his way, arriving by bike with a friendly smile and a sampling of his roasted coffee beans in return for a donations to one of his favorite loves – the South Pasadena Tournament of Roses.
Bill Glazier is a South Pasadenan and has been the primary news reporter & editor-in-chief for South Pasadena for over 24 years. His work with SouthPasadenan.com is read by over 110,500 people in the South Pasadena/Pasadena Metro, Highland Park, and surrounding communities.

redpajama_set_name: RedPajamaCommonCrawl


text:
⇐ Manhattan Co-op Ordered to Pay $120,000 to a Woman Affected by Secondhand Smoke
Saratoga Springs Housing Authority Going Smoke-Free ⇒
Buffalo Municipal Housing Authority bans smoking in all buildings
By Susan Schulman
March 17, 2016 The Buffalo News
Beginning July 1, smoking will be banned in all Buffalo Municipal Housing Authority buildings, including individual apartments.
The ban was approved Thursday by the BMHA board.
"The goal is to create a healthier, cleaner environment for all our residents, particularly children, the elderly and those suffering from respiratory illness," said BMHA Executive Director Dawn E. Sanders Garrett.
The ban, which drew opposition from some tenants during a recent public hearing, was supported by others, who complained of secondhand smoke.
Thursday, a Roswell Park Cancer Institute oncologist and an official of the U.S. Department of Housing and Urban Development attended the BMHA meeting to praise the authority's anti-smoking vote.
Nearly 400 public housing authorities in the country have adopted smoke-free policies, including those in Rochester, Syracuse, Albany and Kenmore.
Eventually, BMHA officials have said, HUD is likely to ban smoking at all of it 3,300 public housing agencies.
Though the BMHA ban goes into effect July 1, it will be a "soft implementation," through the end of this year. But starting Jan. 1, residents caught smoking will be get formal warnings and possible eviction for repeated violations, BMHA officials said.
Also Thursday, BMHA officials addressed some of the financial issues recently raised over BMHA payments possibly owed to the City of Buffalo.
The BMHA payment to Buffalo for 2015 police services has been in process for several weeks, and the city is expected to receive the $650,000 check next week, Sanders-Garrett said.
The BMHA and Common Council are scheduled to meet next week to discuss another $1.5 million the city Comptroller's Office said the authority owes the city, but which other officials dispute.
http://www.buffalonews.com/city-region/buffalo/buffalo-municipal-housing-authority-bans-smoking-in-all-buildings-20160317
This entry was posted in Featured News. Bookmark the permalink.


text:
В інформаційній безпеці обчислювальна довіра — це створення довірених уповноважених або довіри користувачів за допомогою криптографії. У централізованих системах безпека зазвичай базується на автентифікованій ідентифікації зовнішніх сторін. Жорсткі механізми автентифікації, такі як інфраструктури відкритих ключів (PKI) або Kerberos, дозволили поширити цю модель на розподілені системи в межах кількох тісно взаємодіючих доменів або в межах одного адміністративного домену. Протягом останніх років інформатика перейшла від централізованих систем до розподілених обчислень. Ця еволюція має кілька наслідків для моделей безпеки, політик і механізмів, необхідних для захисту інформації та ресурсів користувачів у все більш взаємопов'язаній обчислювальній інфраструктурі.

Механізми безпеки на основі ідентифікації не можуть авторизувати операцію без автентифікації заявника. Це означає, що жодна взаємодія не може відбутися, якщо обидві сторони не відомі їхнім структурам автентифікації. Таким чином, для спонтанної взаємодії знадобиться один або кілька довірених центрів сертифікації (CA). Користувач, який бажає співпрацювати з іншою стороною, може вибрати між увімкненням безпеки та вимкненням спонтанної співпраці або вимиканням безпеки та ввімкненням спонтанної співпраці. Важливо, щоб мобільні користувачі та пристрої могли автентифікуватися автономно, не покладаючись на загальну інфраструктуру автентифікації. Щоб подолати цю проблему, нам потрібно вивчити виклики, пов'язані з «глобальним обчисленням», терміном, який ЄС придумав для майбутнього глобального інформаційного суспільства, і визначити їхній вплив на безпеку.

Криптовалюти, такі як біткойн, використовують такі методи, як підтвердження роботи (PoW), щоб досягти обчислювальної довіри всередині мережі транзакцій.

Історія
Обчислювальна довіра застосовує людське уявлення про довіру до цифрового світу, який сприймається як шкідливий, а не кооперативний. Очікувані переваги, згідно з Маршем та ін., призводять до використання здібностей інших через делегування та до розширення співпраці у відкритому та менш захищеному середовищі. Дослідження в області обчислювальних механізмів довіри та репутації у віртуальних суспільствах спрямовані на підвищення надійності та продуктивності цифрових спільнот.

Рішення на основі довіри в конкретній області є багатоетапним процесом. Перший крок цього процесу полягає в ідентифікації та виборі належних вхідних даних, тобто доказів довіри. Загалом вони залежать від домену й отримуються в результаті аналізу, проведеного над залученою програмою. На наступному кроці обчислення довіри виконується на основі доказів, щоб отримати значення довіри, що означає оцінку надійності об'єктів у цьому конкретному домені. Вибір доказів і подальше обчислення довіри базуються на понятті довіри, визначеному в моделі довіри. Нарешті, рішення про довіру приймається з урахуванням обчислених значень і зовнішніх факторів, таких як розташування або оцінка ризику.

Визначення довіри
Ці концепції набули підвищеної актуальності в останнє десятиліття в інформатиці, особливо в області розподіленого штучного інтелекту. Парадигма мультиагентної системи та зростання електронної комерції підвищили інтерес до довіри та репутації. Насправді системи довіри та репутації визнані ключовими факторами електронної комерції. Ці системи використовуються інтелектуальними програмними агентами як стимул для прийняття рішень, при вирішенні, виконувати чи не виконувати контракти, і як механізм для пошуку надійних партнерів по обміну. Зокрема, репутація використовується на електронних ринках як механізм встановлення довіри або як спосіб уникнути шахраїв.

Ще однією сферою застосування цих концепцій в агентській технології є командна робота та співпраця. Кілька визначень людського поняття довіри було запропоновано протягом останніх років у різних областях від соціології, психології до політології та бізнес-науки. Ці визначення можуть навіть змінюватися відповідно до області застосування. Наприклад, останнє визначення Романо намагається охопити попередню роботу в усіх цих областях:

І довіра, і репутація мають соціальну цінність. Коли хтось заслуговує на довіру, можна очікувати, що ця особа буде діяти вигідно або, принаймні, не підозріло, що забезпечить іншим, з високою ймовірністю, хорошу співпрацю з нею. Навпаки, коли хтось виглядає ненадійним, інші утримуються від співпраці, оскільки існує нижчий рівень ймовірності того, що ця співпраця буде успішною.

Довіра тісно пов'язана з упевненістю та передбачає певний ступінь невизначеності, надії чи оптимізму. Зрештою, Марш звернувся до питання формалізації довіри як обчислювальної концепції у своїй докторській дисертації. Його модель довіри базується на соціальних і психологічних факторах.

Класифікація моделі довіри
У літературі з'явилося багато пропозицій, і тут представлено вибірку моделей обчислювальної довіри та репутації, які представляють хороший зразок поточних досліджень.

Довіру та репутацію можна аналізувати з різних точок зору та застосовувати в багатьох ситуаціях. Наступна класифікація заснована на врахуванні специфічних характеристик цих моделей і середовища, в якому вони розвиваються.

Концептуальна модель
Модель довіри та репутації можна охарактеризувати як:

 пізнавальна

У моделях, заснованих на когнітивному підході, довіра та репутація складаються з основних переконань і є функцією ступеня цих переконань. Психічні стани, які призводять до довіри іншому агенту або до присвоєння репутації, є невід'ємною частиною моделі, а також психічні наслідки рішення та дії покладатися на іншого агента;

 неврологічна

Неврологічні моделі довіри засновані на неврологічних теоріях взаємодії між афективними та когнітивними станами також моделюються на неврологічному рівні за допомогою теорій про втілення емоцій. У цих моделях динаміка довіри пов'язана з досвідом із (зовнішніми) джерелами як з когнітивної, так і з емоційної точки зору. Більш конкретно, для відчуття емоції, пов'язаної з психічним станом, моделюються конвергентні рекурсивні петлі тіла. Крім того, на основі навчання Хебба (для міцності зв'язків з емоційними реакціями) вводяться різні процеси адаптації, які надихаються гіпотезою соматичних маркерів.

 теоретико-ігрові

Довіра та репутація вважаються суб'єктивними ймовірностями, завдяки яким індивід А очікує, що індивід Б виконає певну дію, від якої залежить його добробут.

У цьому підході довіра та репутація не є результатом психічного стану агента в когнітивному сенсі, а результатом більш прагматичної гри з функціями корисності та чисельним агрегуванням минулих взаємодій.

Джерела інформації
Можна відсортувати моделі, враховуючи джерела інформації, які використовуються для обчислення довіри та значень репутації. Традиційними джерелами інформації є прямий досвід і інформація від свідків, але останні моделі почали розглядати зв'язок між інформацією та соціологічним аспектом поведінки агента. Коли модель містить кілька джерел інформації, це може збільшити надійність результатів, але, навпаки, це може збільшити складність моделі.

Прямі переживання
Прямий досвід є найбільш актуальним і надійним джерелом інформації для моделі довіри/репутації. Можна розпізнати два типи прямого досвіду:

 досвід, заснований на безпосередній взаємодії зі співрозмовником;
 досвід, заснований на спостережуваній взаємодії інших членів спільноти.

Інформація про свідків
Інформація від свідків, яку ще називають непрямою інформацією, — це інформація, отримана з досвіду інших членів спільноти. Це може базуватися на їхньому власному безпосередньому досвіді або на інших даних, які вони зібрали з досвіду інших. Інформація зі свідків зазвичай найбільша, але її використання складне для моделювання довіри та репутації. Насправді це вносить невизначеність, і агенти можуть маніпулювати або приховувати частини інформації для власної вигоди.

Соціологічна інформація
Люди, які належать до спільноти, встановлюють різні типи відносин. Кожен індивід відіграє одну або кілька ролей у цьому суспільстві, впливаючи на свою поведінку та взаємодію з іншими людьми. У мультиагентній системі, де існує багато взаємодій, соціальні відносини між агентами є спрощеним відображенням більш складних відносин їхніх партнерів-людей. Лише деякі моделі довіри та репутації використовують цю соціологічну інформацію, використовуючи такі методи, як аналіз соціальних мереж. Ці методи вивчають соціальні відносини між індивідами в суспільстві, які виникли як набір методів для аналізу соціальних структур, методів, які спеціально дозволяють досліджувати реляційні аспекти цих структур.

Упередження та упередженість
Упередження — це ще один, хоча й незвичайний механізм, який впливає на довіру та репутацію. Відповідно до цього методу, індивіду надаються властивості певної групи, які роблять його впізнаваним як члена. Це можуть бути такі ознаки, як форма, певна поведінка тощо.

Оскільки більшість людей сьогодні вживає це слово, упередження стосується негативного або ворожого ставлення до іншої соціальної групи, часто за расовою ознакою. Однак цю негативну конотацію необхідно переглянути, коли її застосовувати до спільнот агентів. Набір знаків, що використовуються в обчислювальних моделях довіри та репутації, зазвичай не входять до етичної дискусії, на відміну від знаків, що використовуються в людських суспільствах, як-от колір шкіри чи стать.

Більшість літератури з когнітивних і соціальних наук стверджує, що люди демонструють нераціональну, упереджену поведінку щодо довіри. Нещодавно були розроблені, проаналізовані та підтверджені емпіричними даними моделі упередженої людської довіри. Результати показують, що такі моделі упередженої довіри здатні передбачити людську довіру набагато краще, ніж моделі неупередженої довіри.

Обговорення моделей довіри/репутації
Найбільш релевантними джерелами інформації, розглянутими моделями довіри та репутації, представленими раніше, є прямий досвід та інформація свідків. На електронних ринках соціологічна інформація майже відсутня, і для підвищення ефективності реальних моделей довіри та репутації її слід враховувати. Однак немає жодних причин ускладнювати моделі, що вводять докази довіри, якщо пізніше їх доведеться використовувати в середовищі, де неможливо реалізувати їхні можливості. Агрегування більшої кількості доказів довіри та репутації є корисним для обчислювальної моделі, але це може збільшити її складність, ускладнюючи загальне рішення. Кілька моделей залежать від характеристик середовища, і можливим рішенням може бути використання адаптивних механізмів, які можуть змінювати спосіб поєднання різних джерел інформації в даному середовищі. Було представлено багато визначень довіри та репутації, і є кілька робіт, які надають значення обом поняттям.

Між обома поняттями існує зв'язок, який слід розглянути глибше: репутація — це поняття, яке допомагає зміцнювати довіру інших. Сьогодні теорія ігор є переважною парадигмою, яка розглядається для розробки обчислювальних моделей довіри та репутації. Цілком ймовірно, ця теорія береться до уваги, тому що значна кількість економістів і комп'ютерників, які мають великий досвід у теорії ігор і техніках штучного інтелекту, працюють у мультиагентних умовах та в контексті електронної комерції. Теоретико-ігрові моделі дають хороші результати, але можуть бути непридатними, коли складність агентів з точки зору соціальних відносин і взаємодії зростає, стає надто обмеженою. Необхідно розглянути дослідження нових можливостей і, наприклад, поєднати когнітивні підходи з теоретичними іграми. Окрім цього, слід розглянути більше доказів довіри, а також чутливі до часу . представляють собою перший крок до заохочення покращення обчислювальної довіри.

Важливим питанням у моделюванні довіри є можливість передачі оцінок довіри різними агентами. Соціологи погоджуються вважати цінності безумовної довіри такими, що не підлягають передачі, але більш прагматичний підхід приходить до висновку, що судження про кваліфіковану довіру варто передавати, оскільки рішення, прийняті з урахуванням думки інших, є кращими, ніж ті, що приймаються окремо. У автори досліджували проблему передачі довіри у відкритих розподілених середовищах, запропонувавши механізм трансляції, здатний зробити інформацію, яка обмінюється від одного агента до іншого, більш точною та корисною.

Оцінка моделей довіри
Наразі не існує загальноприйнятої системи оцінювання чи порівняльного показника, який би дозволив порівнювати моделі за набором репрезентативних і загальних умов. Було запропоновано теоретико-ігровий підхід у цьому напрямку, де конфігурація моделі довіри оптимізована, припускаючи, що зловмисники мають оптимальні стратегії атаки; це дозволяє на наступному кроці порівняти очікувану корисність різних моделей довіри. Подібним чином була запропонована аналітична структура на основі моделі для прогнозування ефективності механізмів репутації проти моделей довільних атак у моделях довільних систем для однорангових систем.

Див. також

 IT ризик
 Управління ІТ ризиками
 Kerberos (протокол)
 Інфраструктура відкритих ключів

Примітки

Посилання

 TRMSim-WSN, симулятор моделей довіри та репутації для бездротових сенсорних мереж
Керування ключами
Комп'ютерний контроль доступу
Соціальні медіа
Сторінки з неперевіреними перекладами

redpajama_set_name: RedPajamaWikipedia


text:
Djouce Rescue (17/06/12)
Woman airlifted to safety after third attempt
A group of Girl Guide leaders were forced to call on the Dublin & Wicklow Mountain Rescue Team and the Glen of Imaal Red Cross Mountain Rescue team this afternoon after one of their group collapsed on a hike near Djouce mountain.
The lady, who was in her forties, was experiencing a variety of symptoms including chest pain and was unable to continue her walk. A concerned group quickly formed around the lady and a mountain rescue volunteer who was out hiking with some friends noticed them in the distance. Realising something was wrong, he quickly made his way to the scene. The rescuer, who is a experienced advanced paramedic, provided initial care to the woman and used his mobile phone to request the assistance of his Mountain Rescue colleagues. He continued to care for the lady as more rescuers arrived at the location.
Since the lady's condition required immediate hospital care the Mountain Rescue volunteers sought the assistance of the Coastguard helicopter. Visibility was very poor at the location and the helicopter made two failed attempts to airlift the lady before being forced to return to Dublin Airport to refuel. As conditions deteriorated the rescuers realised that the chances of a successful airlift at their location were poor. They made the decision to carry the lady lower down the hill so that they would be below the cloud level. This would allow the helicopter to airlift the woman from the hill and ensure she got to hospital quickly. The teams continued to provide medical treatment throughout the stretcher carry.
The helicopter arrived back on the mountain-side approximately 40 minutes later and was able to successfully lift the woman from the new location and bring her to hospital.
This was the second callout for the teams in two days – on Saturday a nurse who was out walking on the Spinc in Glendalough sustained a head injury after falling from the boardwalk. Her colleagues, who were also nurses, treated her on the scene and helped her to walk to a waiting Mountain Rescue vehicle. She received further treatment from the Mountain Rescue volunteers and was transported to a waiting ambulance.
We would like to thank all agencies involved in these incidents
Climber Rescue(13/08/11)
Call Out 48: Knocksink Wood 5/8/17
Great Sugarloaf Rescue 15/09/14
Call Out 21: Barnacullia Incident 30/04/16


text:
\section{Empirical Evaluation}

Our evaluation studies the effectiveness of our network encoding and
{\tt HNSolve}\xspace\ algorithm.  Specifically, we compare three configurations of
our solver on several hybrid automaton encodings of PDDL+ problems.
The configurations include an unmodified dReach/dReal solver, the
addition of the {\tt HNSolve}\xspace\ algorithm without clause learning, and {\tt HNSolve}\xspace
with clause learning.  We evaluate the configurations on single automaton encodings \cite{DBLP:conf/aaai/BryceGMG15}, and networks of automata
encodings based on that of Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14}.  With the
network encodings, we either take the parallel composition and encode
a single automaton, or encode the network as described in the
previous section.

We note that the encodings used in prior work differ in whether they
include a ``lock'' for the actions. Bryce \textit{et al.}\xspace
\cite{DBLP:conf/aaai/BryceGMG15} hand-encode a single automaton
for each problem that ensures no two actions can occur at the same
time.  In a network of automata, where each action is represented by
its own automaton, Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14} ensure that no two actions
occur, start, or end simultaneously by introducing a lock automaton.
The network of automata models each action so that it must acquire and release the
lock when it occurs (atomic actions) or starts/ends (durative
actions).  This causes the network encoding to require twice the number
of encoding steps than the single automaton encoding used by Bryce
\textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15}.  We notice that the two step
lock is only necessary when enforcing $\epsilon$-separation of the
actions.  Since Bryce
\textit{et al.}\xspace  \cite{DBLP:conf/aaai/BryceGMG15} do not model
$\epsilon$-separation we can match their required number of encoding steps with
the network of automata by using a single lock transition that synchronizes with each action.

\begin{table*}[t]
\centering
\begin{tabular}{|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }||@{ }r@{ }|@{ }r@{ }|@{ }r@{ }||@{ }r@{ }|@{ }r@{ }|@{ }r@{ }||@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|}
\hline
k	&	Dom	&	Inst	&	F	&	F+H	&	F+H+L	&	C	&	C+H	&	C+H+L	&	N	&	N+H	&	N+H+L	\\
\hline\hline
3 (3)	&	Gen	&	0	&	0.15	&	0.16	&	0.14	&	1.40	&	0.14	&	0.15	&	0.49	&	0.49	&	0.18	\\
7 (5)	&	Gen	&	1	&	0.76	&	1.66	&	1.77	&	-	&	4.21	&	4.22	&	1.74	&	1.16	&	1.14	\\
11 (7)	&	Gen	&	2	&	26.36	&	-	&	-	&	-	&	879.36	&	876.92	&	173.78	&	6.08	&	5.78	\\
15 (9)	&	Gen	&	3	&	-	&	-	&	-	&	-	&	-	&		&	310.70	&	22.91	&	21.77	\\
19 (9)	&	Gen	&	4	&	-	&	-	&	-	&	-	&	-	&		&	-	&	69.16	&	66.89	\\
23 (13)	&	Gen	&	5	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	320.21	&	316.45	\\
27 (17)	&	Gen	&	6	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	530.77	&	1044.27	\\
\hline
6	&	Car1	&	1	&	5.49	&	1.63	&	1.54	&	-	&	-	&	-	&	3.46	&	2.81	&	23.48	\\
5	&	Car1	&	2	&	3.45	&	1.46	&	1.38	&	-	&	-	&	-	&	2.26	&	2.19	&	22.35	\\
5	&	Car1	&	3	&	8.06	&	1.48	&	1.44	&	-	&	-	&	-	&	6.15	&	3.87	&	43.57	\\
5	&	Car1	&	4	&	4.73	&	1.51	&	1.52	&	-	&	-	&	-	&	7.88	&	7.27	&	81.93	\\
5	&	Car1	&	5	&	5.25	&	1.53	&	1.49	&	-	&	-	&	-	&	10.91	&	9.82	&	145.64	\\
5	&	Car1	&	6	&	6.42	&	1.47	&	1.50	&	-	&	-	&	-	&	19.96	&	17.05	&	251.90	\\
5	&	Car1	&	7	&	7.02	&	1.45	&	1.53	&	-	&	-	&	-	&	42.53	&	29.73	&	465.09	\\
5	&	Car1	&	8	&	9.79	&	1.44	&	1.53	&	-	&	-	&	-	&	76.78	&	45.12	&	216.67	\\
5	&	Car1	&	9	&	10.23	&	1.93	&	2.05	&	-	&	-	&	-	&	143.52	&	76.76	&	356.15	\\
5	&	Car1	&	10	&	12.45	&	1.92	&	2.05	&	-	&	-	&	-	&	221.08	&	121.31	&	498.48	\\
\hline
12	&	Car2	&	1	&	-	&	313.77	&	219.1	&	-	&	-	&	-	&	-	&	-	&	24.02	\\
10	&	Car2	&	2	&	-	&	966.82	&	342.12	&	-	&	-	&	-	&	-	&	-	&	23.17	\\
10	&	Car2	&	3	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	46.51	\\
10	&	Car2	&	4	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	85.67	\\
10	&	Car2	&	5	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	146.43	\\
10	&	Car2	&	6	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	246.70	\\
10	&	Car2	&	7	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	448.86	\\
10	&	Car2	&	8	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	217.37	\\
10	&	Car2	&	9	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	370.81	\\
10	&	Car2	&	10	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	-	&	482.50	\\
\hline
8	&	Dribble	&	2	&	-	&	0.23	&	0.42	&	-	&	-	&	-	&	1.75	&	0.90	&	1.08	\\
12	&	Dribble	&	3	&	-	&	0.36	&	0.36	&	-	&	-	&	-	&	2.62	&	1.78	&	1.80	\\
16	&	Dribble	&	4	&	-	&	0.51	&	0.51	&	-	&	-	&	-	&	6.94	&	3.23	&	3.14	\\
20	&	Dribble	&	5	&	-	&	0.71	&	0.72	&	-	&	-	&	-	&	10.10	&	4.91	&	4.78	\\
24	&	Dribble	&	6	&	-	&	0.92	&	0.93	&	-	&	-	&	-	&	16.85	&	7.16	&	7.04	\\
28	&	Dribble	&	7	&	-	&	1.08	&	1.09	&	-	&	-	&	-	&	256.84	&	9.48	&	9.70	\\
32	&	Dribble	&	8	&	-	&	1.64	&	1.73	&	-	&	-	&	-	&	84.88	&	12.90	&	13.39	\\
36	&	Dribble	&	9	&	-	&	2.08	&	2.07	&	-	&	-	&	-	&	134.01	&	17.25	&	18.02	\\
40	&	Dribble	&	10	&	-	&	2.74	&	2.76	&	-	&	-	&	-	&	135.79	&	23.07	&	23.49	\\
\hline
\end{tabular}
 \caption{\label{tab:internal-nonlinear}Runtime (s) on nonlinear instances. ``-'' indicates a timeout.}
\end{table*}

We also compare {\tt HNSolve}\xspace\ with dReal\xspace\ and existing planners,  including
SpaceEx \cite{frehse_spaceexb:_2011,DBLP:conf/hvc/BogomolovFGGPPS14,bogomolov-et-al-sttt2015,bogomolov-etal:cav2012}, CoLin
\cite{coles2012colin}, and UPMurphi \cite{della2009upmurphi}.
We reproduce previously published results \cite{DBLP:conf/aaai/BogomolovMPW14} for the
SpaceEx, CoLin, and UPMurphi approaches, but report runtimes for
{\tt HNSolve}\xspace\ and dReal\xspace\ from the same machine, a
2.6 GHz Intel Core i7 and 8GB RAM.

Our approach inherits some of the limitations of using SpaceEx with
the Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14} network
representation of PDDL+.  The encoding does not respect the ``must''
semantics of PDDL+ wherein processes and events must occur when
enabled.  However, this limitation is not realized in our chosen
benchmarks because any use of a process or event is advantageous to
the plan.  We also note that dReal (and {\tt HNSolve}\xspace\ as a result) find
$\delta$-satisfiable solutions to the $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ encoding.  Owing to the
undecidable nature of nonlinear hybrid systems, dReal cannot guarantee
that a $\delta$-satisfiable solution, which bounds the values of the
continuous variables, contains a realizable plan.  Defining an
appropriately small value for $\delta$ minimizes this concern.  We
also note that dReal in itself is not a full planner.  We report
results for the minimum step length required to find a plan.  A number
of strategies for exploring different step lengths in parallel or in
sequence have been studied in SAT based planning and can be applied
here.  We note that these considerations must be incorporated when
comparing the results for our approach with that of the other planners.

\und{Domains}  We use the Generator and Car
domains from the literature \cite{DBLP:conf/aaai/BogomolovMPW14} and
the Dribble domain \cite{DBLP:conf/aaai/BryceGMG15}.  We compare on
linear and nonlinear versions of Generator and Car, but only a
nonlinear version of Dribble.

The Car domain includes only atomic actions and processes.  The
actions are to start or stop the Car, and accelerate or decelerate.  The
moving process models one-dimensional kinematics (distance as a
function of velocity and velocity as a function of acceleration) and
the wind-resistance process models the drag effect upon velocity.
Additional actions for acceleration or deceleration
increase the
branching factor of the problem.  As the problems scale, each instance
$i$ includes actions to accelerate and decelerate by $1, \ldots, i$ units.
The linear and nonlinear versions of the domain differ in whether they include the nonlinear wind-resistance process.

The
Generator domain includes two durative actions: generate, and refuel.
The generate action has a duration of 1000 time units and consumes
fuel at a linear rate.  Its at-end effect satisfies the goal.  Its
overall condition requires that the fuel level is non-negative.  The
instances scale in the number of tanks required to refuel the
Generator so that its overall condition is satisfied.  The refuel
actions increase the fuel level in the Generator continuously, by a
linear rate (in the linear version) or a nonlinear rate (in the
nonlinear version).
For example, the refuel action defines the effects
linearly as
\begin{verbatim}
(increase (fuel ?g) (* #t 2))
\end{verbatim}
or nonlinearly
\begin{verbatim}
(increase (ptime ?t) (* #t 1))
(increase (fuel ?g)
          (* #t (* 0.1 (* (ptime ?t)
                          (ptime ?t)))))
\end{verbatim}

The Dribble domain involves a process that effects the position $x$ of
a ball.  The position changes continuously based upon the ball
velocity $v$.  The velocity changes continuously due to gravity ($-g$) and drag ($-0.1 v^2$).  The
available actions are dribble($f$) which decrease velocity by $f \in
\{0, 1, 2, 4\}$. The dribble actions have the precondition that velocity is
zero (i.e., the ball is at the top of its arc).  The bounce event
assigns velocity to
$-0.9v$ and has the condition that the ball
position $x$ is zero.  The initial state places the ball at $x=1$ with
velocity $v=0$ and the goal is to  reach $1.5 \leq x \leq
3.0$. The problem, while it does not scale, can be solved for
plan lengths greater than one.  We find plans (using two-step locking) for steps $k = 8, 12,
16, \ldots, 40$, which correspond respectively to $2, 3, 4, \ldots,
10$ dribble actions interleaved with the same number of bounce events.

\und{Results}  Tables \ref{tab:internal-linear} and
\ref{tab:internal-nonlinear} list runtime results for dReal\xspace\ and
{\tt HNSolve}\xspace\ on the respective
linear and nonlinear instances.  The columns list the number of
encoding steps $k$, domain, instance, and run times in seconds for
each encoding and solver configuration.  The first three columns of
results are denoted by ``F'' for a hand-coded flat encoding based upon
the instances studied by Bryce \textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15}.  The second three columns of results
are denoted by ``C'' for the automatically generated parallel
composition of the network encoding into a single automaton.  The last
three columns denoted by ``N'' are the instances encoded with the
network encoding.  Within each group of columns, we denote by ``F'',
``C'', and ``N'' the results that do not use the new {\tt HNSolve}\xspace\ layer.  The columns with ``+H''
denote results for {\tt HNSolve}\xspace\ without clause learning, and those with
``+H+L'', for {\tt HNSolve}\xspace with clause learning.  Entries with ``-''
indicate a timeout of 20 minutes was reached.

\begin{table*}[t]
\centering
\begin{tabular}{|@{ }l@{ }|@{ }l@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|@{ }r@{ }|}
\hline
Dom & Planner & 1 & 2 & 3 & 4 & 5& 6 & 7 & 8 \\
\hline
Gen	&	{\tt HNSolve}\xspace\	&		0.77	&		3.62	&		12.77	&	36.05	&	92.26	&	360.63	&	482.03	&	-	\\
Gen	&	dReal2	&	3.07	&	15.6	&	134.71	&	1699.87	&	-	&	-	&	-	&	-	\\
Gen	&	SpaceEx	&	0.01	&	0.03	&	0.07	&	0.1	&	0.19	&	0.28	&	0.45	&	0.65		\\
Gen	&	CoLin	&	0.01	&	0.09	&	0.2	&	2.52	&	32.62	&	600.58	&	-	&	-	\\
Gen	&	UPMur	&	0.2	&	18.2	&	402.34	&	-	&	-	&	-	&	-	&	-	\\ \hline
Car	&	{\tt HNSolve}\xspace\	&	1.32	&		1.05	&	1.59	&	2.43	&	3.95	&	6.11	&	9.77	&	18.33	\\
Car	&	dReal2	&	1.07	&	1.17	&	1.16	&	1.22	&	1.23	&	1.29	&	1.26	&	1.21		\\
Car	&	SpaceEx	&	0.01	&	0.01	&	0.01	&	0.03	&	0.04	&	0.05	&	0.06	&	0.07		\\
Car	&	CoLin	&	x	&	x	&	x	&	x	&	x	&	x	&	x	&	x		\\
Car	&	UPMur	&	28.44	&	386.5	&	-	&	-	&	-	&	-	&	-	&	-\\
\hline
\end{tabular}
 \caption{\label{tab:ext} Runtime results (s) on linear Generator and
   Car. ``-'' indicates a timeout.}
\end{table*}

The results in the Generator domain are listed in the tables with the
number of encoding steps $k$ for the two-step lock encoding used in
the C and N columns, and the steps in parentheses for the F
encodings.  The F encodings model the generate action with three
steps, and each refuel action with two steps.  The C and N encodings
model each action with four steps, but is able to achieve the goal
before releasing the final lock.  Thus, each C and N instance uses one
generate action (3 steps), and a number of refuel actions equal to the
instance number (4 steps each).  The linear results show that all solver
configurations have difficulty scaling on the  F and C encodings, as
reported by \cite{DBLP:conf/aaai/BryceGMG15}.  The critical factor is that
the encoding grows very large with the size of the instances (see
Figure \ref{fig:size}).  Despite
the poor scalability due to the size of the encoding, {\tt HNSolve}\xspace\ (C+H, C+H+L) can
provide some modest improvement over dReal\xspace\ (C).  The network encoding N performs
significantly better because it uses a tighter encoding.  We also see
the same trends as for the F and C encodings when comparing the different
solver options; {\tt HNSolve}\xspace\ (N+H, N+H+L) outperforms dReal (N) considerably and clause
learning (+L) has a large impact.

\begin{figure}[t]
\centering \includegraphics[width=.9\linewidth]{gen-encoding-size.pdf}
\caption{\label{fig:size} Generator encoding file size.}
\end{figure}

The Car1 instances use the one-step lock and the Car2 instances use
the two-step lock encoding.  The F+H results on Car1 are most similar
to the results reported by \cite{DBLP:conf/aaai/BryceGMG15}.   Our results are somewhat
different because they are based upon dReal3, where the prior work
results were collected on dReal2.  The major difference between these
versions of dReal are its use of the IBEX interval constraint solver
(dReal3), and the Realpaver solver (dReal2).   We see that the Car1
instances heavily favor the F encodings, and the use of dReal\xspace\ over
{\tt HNSolve}\xspace.  In all caes, we see an improvement over dReal (F, C, N) by
using {\tt HNSolve}\xspace (+H).  We see less of an improvement, and sometimes
worse performance when using clause learning (+L).  This may be due to
the overhead associated with storing the clauses or a
reshaping of the search space that leads to more backtracking.

The Car2 instances favor the N encoding and
{\tt HNSolve}\xspace\ with clause learning (N+H+L).  It appears that the difference
is that the relatively shorter encoding lengths in Car1 do not impact
the encoding size as in Car2.  In Car2
where the encoding length is double that of Car1, the {\tt HNSolve}\xspace\ is
needed to explore the search space.  This result is largely consistent
with the trend demonstrated in the Generator domain, where {\tt HNSolve}\xspace
performs best as the number of encoding steps increases.

Lastly, the Dribble domain highlights how both {\tt HNSolve}\xspace\ and the
network encoding have a positive impact upon peformance.  The
F+H configuration and encoding is closest to that reported by Bryce
\textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15}, and illustrates an improvement over previously published results that we attribute to a difference in dReal\xspace\
version.

Table \ref{tab:ext} compares {\tt HNSolve}\xspace\  (N+H+L) with the results
reported by \cite{DBLP:conf/aaai/BryceGMG15} (denoted as dReal\xspace{}2, and
similar to F+H) and
the other planners on linear instances of the Generator and Car
domains.  As above, each instance scales the respective number of tanks to fill the
Generator (where each tank is required) and levels of
acceleration/deceleration.  We see that {\tt HNSolve}\xspace\ scales much better
than dReal\xspace{} on the Generator domain.

\section{Introduction}
Recent
planners
(\cite{DBLP:conf/aaai/BogomolovMPW14} and \cite{DBLP:conf/aips/BogomolovMMW15}) for PDDL+~\cite{fox2006modelling}
represent actions, processes, events, and state variables as a network of
synchronized hybrid automata (HA), but there are no suitable algorithms for reasoning
about nonlinear change in a network of automata.  We
address nonlinear PDDL+ problems by adapting the dReal Satisfiability Modulo
Theories (SMT) solver
\cite{DBLP:conf/cade/GaoKC13,DBLP:conf/aaai/BryceGMG15}, which has
been previously shown to address nonlinear PDDL+ as a single hybrid
automaton.  It is well-known that reasoning about the explicit
parallel composition of a network of automata as a single automaton is
usually a poor choice because it grows exponentially in the size of
the individual synchronized automata
\cite{DBLP:conf/aaai/CimattiMT12,bu:hal-01055156,bengtsson1998partial}.
We base our HA network SMT encoding  upon prior work
\cite{DBLP:conf/aaai/CimattiMT12} that represents each automaton
independently and adds synchronization constraints.  We show that a direct network encoding results in better scalability
in the number of encoding steps than a single automaton encoding if it
is also matched with an appropriate search strategy.

We extend and reinterpret the approach taken by
Bryce \textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15} within our proposed {\tt HNSolve}\xspace\
algorithm. They guide dReal to
systematically select
variable assignments that correspond to discrete-feasible runs of
a hybrid automaton (i.e., ignoring continuous variables).  In this
manner, they force dReal to perform a heuristic depth-first search that considers
all runs through the hybrid automaton.  This led to increased
scalability because dReal did not consider variable assignments
that correspond to discrete-infeasible runs.  A similar technique is
employed by the dReach \cite{DBLP:conf/cade/GaoKC13} and BACH \cite{4689172}
algorithms, but these encode a different SMT instance
for each discrete run and do not benefit from learned conflict
clauses.

{\tt HNSolve}\xspace, like the work of Bryce \textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15}, guides
dReal variable selection to construct discrete-feasible runs, but
differs in two main aspects.  First, {\tt HNSolve}\xspace\ constructs composite
runs for a network of HAs and not a single HA.  Each composite run
represents a feasible sequence of synchronized transitions within each
automaton.  {\tt HNSolve}\xspace\ also performs a heuristic depth-first search over
the possible composite runs.  The second difference is that
{\tt HNSolve}\xspace\ also learns conflict clauses that it adds to the SMT
encoding.  While searching the space of discrete-feasible composite runs, {\tt HNSolve}\xspace
may be unable to find a run that extends the current partial
run.  dReal's current variable assignment encodes a partial run
prefix, and the conflict clause blames the current variable assignment
encoding the prefix.  We find that adding conflict clauses is a
critical new aspect of our approach, and demonstrate that it improves
solver scalability as the number of steps in the encodings increase.  Developing problem-specific
SMT solver algorithms was also recently explored in the
context of program analysis \cite{DBLP:conf/nfm/Schwartz-Narbonne15}.
We hope to advance the understanding of how problem-specific, and arguably
invasive, modifications to SMT solvers can bring about improved performance.

We evaluate the {\tt HNSolve}\xspace\ algorithm  on several
PDDL+ planning benchmarks encoded as networks of hybrid automata, as
developed in prior work \cite{DBLP:conf/aaai/BogomolovMPW14}.  We compare flat, precompiled encodings of the networks to
our direct encoding of the networks.
 We show that our encoding outperforms
encodings based upon explicit parallel composition and is competitive
with the state of the art in PDDL+.  We also demonstrate the advantages of
using the {\tt HNSolve}\xspace\ algorithm to improve performance.

\section{Hybrid Automata Background}

We discuss how to represent HA networks in the $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ language and their
semantics, as follows.

\und{First-order Theories of the Reals}
The $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ language
represents the first-order signature over the
reals with the set ${\cal F}$ of computable real functions.

\begin{definition}[$\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$-Formulas]
$\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$-formulas are first-order formulas over real numbers, whose signature allows an arbitrary collection $\mathcal{F}$ of Type 2 computable real functions~\cite{gao12a}. The syntax is:
\begin{align*}
t& := c\;|\; x \; | \; f(t(\vec x));\\
\varphi& := t(\vec x)> 0 \; | \; t(\vec x)\geq 0 \; | \; \varphi\wedge\varphi
\; | \; \varphi\vee\varphi \; | \; \exists x_i\varphi \; |\; \forall x_i\varphi.
\end{align*}
\end{definition}
A function is Type 2 computable if it can be algorithmically evaluated up to an arbitrary numerical accuracy.
All common continuous real functions are Type 2 computable.

\und{Networks of Hybrid Automata}
We solve HA network reachability problems by
expressing the network in $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ and then
unrolling it over $k$ steps and associating a goal region
$\mathsf{goal}(\vec x^t_k)$.  The goal is also an $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ formula of the form
$\mathsf{mode}_k \wedge \varphi(\vec x^t_k)$ where $\mathsf{mode}_k$ defines the HA
modes to reach and $\varphi(\vec x^t_k)$ defines the variable values to reach.

\begin{definition}[$\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$-Representations of Hybrid Automata]\label{lrf-definition}
A hybrid automaton in $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$-representation is a tuple
\begin{align*}
H = \langle &X, Q, \mathsf{flow}, \mathsf{inv}, \mathsf{jump},\mathsf{init}, {\sf L}\rangle
\end{align*}
where
\begin{itemize}
\item $X\subseteq \mathbb{R}^n$ for some $n\in \mathbb{N}$,
\item $Q=\{q_1,\ldots,q_m\}$ is a finite set of modes,
\item $\mathsf{flow} = \{{\mathsf{flow}}_q(\vec x^0, \vec x^t, t): q\in Q\}$ is the set of
ODEs  describing the flow for each mode,
\item  $\mathsf{inv} = \{\mathsf{inv}_q(\vec x): q\in
Q\}$ is a set of invariants for each  mode,
\item $\mathsf{jump} = \{\mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x^t, \vec x^{0'}): q,q'\in
Q\}$, where each element is a transition from mode $q$ to $q'$ using
the synchronization label set $\ell$.  Each formula
$\mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x^t, \vec x^{0'})$
is of the form $\varphi(\vec x^t) \wedge
\psi(\vec x^t, \vec x^{0'})$, where $\varphi(\vec x^t)$ is a
conjunction specifying the guard, $\psi(\vec x^t, \vec x^{0'})$ is
a conjunction specifying the discrete update,
\item $\mathsf{init} = \{\mathsf{init}_q(\vec x): q\in Q\}$ is the set of
initial states, and
\item  ${\sf L}$ is a finite set of
synchronized event labels.
\end{itemize}

\end{definition}

Gao \textit{et al.}\xspace \cite{DBLP:conf/cade/GaoKC13}
 describe how to unroll this encoding
for a single automaton.  The important aspects of the unrolling are to
time stamp each of the continuous variables to denote their value at
the start ($\vec x^0_i$) and end ($\vec x^t_i$) of the mode at step
$i$, as well as the time $t_i$ spent in step $i$.

\begin{definition} (HA Runs)
Each run $\tau$ on $H$ is a series of states
\begin{align*}
&(t_0, q_0, s(\vec
x_0^0), s(\vec x_0^{t})),\\
&(t_1, q_1,
s(\vec x_1^0), s(\vec x_1^{t})), \\
&\ldots,\\
&(t_k, q_k,
s(\vec x_k^0), s(\vec x_k^{t}))
\end{align*}
 where $t_i$ is the time spent in
step $i$, $q_i$ is a mode, and $s(\vec x_i^0)$ and $s(\vec x_i^{t_i})$
are respective valuations on $\vec x_i^0$ and $\vec x_i^t$ upon entering or leaving
$q_i$.
\end{definition}

The $\mathsf{init}$ set defines what constitutes a legal initial mode $q_0$
and state valuation $s(\vec x_0^0)$.  The $\mathsf{flow}$ and $\mathsf{inv}$ sets
define legal pairs of state valuations $s(\vec x_i^0)$ and $s(\vec
x_i^t)$ and occupancy times $t_i$.  The $\mathsf{jump}$ set defines legal pairs
of modes $q_i$ and $q_{i+1}$, state valuations $s(\vec x_i^t)$ and
$s(\vec x_{i+1}^0)$, and occupancy times $t_i$.

\begin{definition} (Hybrid Automaton Network)
A network ${\cal N} = \{ H_1, \ldots, H_n\}$ of hybrid
automata is a set of hybrid automata.
\end{definition}

\begin{definition} (HA Network Runs)
Each run $\tau$ on ${\cal N}$ is a series of composite states
\begin{align*}
&(t_0, \vec q_0, s(\vec
x_0^0), s(\vec x_0^{t})),\\
& L_0,\\
& (t_1,\vec q_1,
s(\vec x_1^0), s(\vec x_1^{t})),\\
& L_1,\\
& \ldots,\\
& L_{k-1},\\
&(t_k, \vec q_k,
s(\vec x_k^0), s(\vec x_k^{t}))
\end{align*}
 interleaved with sets of synchronization labels
$L_i$, where each state includes a vector of modes $\vec q_i$ and each
 $\vec x_i^0$ and $\vec x_i^t$  is a valuation on $X = X_1 \cup \ldots \cup X_n$.
\end{definition}

In order for a HA network run to be legal, it must be consistent with
each of the $\mathsf{init}, \mathsf{flow}$, and $\mathsf{inv}$ sets of each individual HA.  Each
label set $L_i$ determines the legal constituent jumps that make up a
composite jump.  In a
composite jump, each automaton either changes modes as defined by its
$\mathsf{jump}$ set, or remains in the same mode. Let $\mathsf{sync} = \ell \cap {\sf
  L}$ be the set of labels a jump must synchronize upon.
 If the composite label is
$L_i$, the automaton must take one of the jumps from the current mode where $\mathsf{sync} \subseteq
L_i$.  If no jump may be taken and ${\sf L} \not\subseteq L_i$, then
the automaton may remain in the same mode.

\section{Hybrid Network Solver}

We describe an extension called the hybrid network solver ({\tt HNSolve}\xspace) to dReal\xspace's SMT
framework that customizes the problem solver for reachability checking in
networks of hybrid automata.

\und{ dReal\xspace}
dReal\xspace{} checks whether an $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ formula is $\delta$-satisfiable (a
decidable problem) by combining a SAT solver
\cite{een2004extensible} with an ICP
solver.\footnote{www.ibex-lib.org} dReal\xspace{} employs the DPLL(T) framework \cite{bruttomesso2010opensmt} for SMT. It first
solves the Boolean constraints to find a satisfying set of literals of
the form $(t(\vec x) \geq 0)$ or $\neg (t(\vec x) \geq 0)$.  This conjunctive set
of literals imposes a set of numeric constraints that are solved using
ICP.  If successful, dReal\xspace{} finishes, and otherwise, the ICP solver
returns a set of literals that explain inconsistency.  The
inconsistent literals become a conflict clause that can be used by the
SAT solver.  If the SAT solver cannot find a satisfying set of
literals, then it returns with an unsatisfiability result.

The ICP solver uses the branch and prune \cite{van1997solving} algorithm to refine
a set of  intervals over the continuous variables (called a box).  Each branch splits the interval
of a single continuous variable, creating two boxes.  Pruning operators propagate the
constraints to shrink the boxes.
ICP continues to branch and prune
boxes until it finds a box that is $\delta$-satisfiable or establishes that no
such box exists (i.e., the constraints are inconsistent).  A box is $\delta$-satisfiable
when for any vector of values $\vec x$ represented by the box, each
constraint $f(\vec x) \geq -\delta$ is satisfied.

\und{Hybrid Network Solver} {\tt HNSolve}\xspace\ wraps the SAT solver and ICP
solver by suggesting variable assignments and adding conflict clauses.
Where dReal\xspace\ would normally make decisions without realizing it is
solving a hybrid network reachability problem, {\tt HNSolve}\xspace\ organizes its
search around potentially viable runs on the network.  To see this,
consider a situation where dReal\xspace\ has made several variable
assignments and decided that $\vec q_0$ and $\vec q_k$ are the initial
and final modes of a run satisfying the $\mathsf{goal}(x_k^t)$.  For the sake
of example, the first automaton $H_1$ does not include jumps that connect
$q_0$ to $q_k$.  A simple shortest path algorithm can recognize that
there is no path from $q_0$ to $q_k$, but dReal\xspace\ will continue to make
assignments unnecessarily and eventually backtrack.

{\tt HNSolve}\xspace\ solves a discrete abstraction
\cite{871304,bu:hal-01055156} of the hybrid reachability problem and coordinates the SAT
solver in making assignments corresponding to its solution.  Its
approach is to find a sequence of mode vectors and synchronization labels of
the form
$$\vec q_0, L_0, \vec q_1, L_1, \ldots, L_{k-1}, \vec q_k$$
that are consistent with the jump transitions and synchronize.
{\tt HNSolve}\xspace\ then extracts the literal assignments corresponding to this
sequence and guides the SAT solver to realize this run.  If the SAT or ICP
solvers discover an inconsistency, then {\tt HNSolve}\xspace\ rebuilds the run
from the point to which the SAT solver backtracks.

{\tt HNSolve}\xspace\ interfaces with the SAT solver through three main methods:
$\mathsf{getTrail}()$,
$\mathsf{assertLit}()$ and $\mathsf{assertClause}()$.
The $\mathsf{getTrail}()$ method returns the SAT solver's assignment stack,
including all premises, decision variable assignments, and inferred
variable assignments.
The $\mathsf{assertLit}()$ and $\mathsf{assertClause}()$ methods
assert a literal or clause assignment, respectively, and return
$\mi{unsat}$, \ensuremath{\delta}-\ensuremath{\mi{sat}}\xspace, $\mi{consistent}$, or
{\it backtrack}.  We note that there is no need for a corresponding
$\mathsf{retractLit}()$ method because backtracking is handled by the SAT
solver as part of the calls to $\mathsf{assertLit}()$ and $\mathsf{assertClause}()$.

{\tt HNSolve}\xspace, Algorithm \ref{alg:hnsolve}, first computes the cost
(described below) to
reach each mode in each automaton in line \ref{alg:hnsolve:cost} and
then encodes the problem in $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ in line
\ref{alg:hnsolve:encode}.
The
algorithm works in two phases.  In lines \ref{alg:hnsolve:beginpath} -
\ref{alg:hnsolve:endpath}, the solver generates a run suffix ${\cal P}$.
Each run is represented by a set of literals of the form
$\{\mode_0^1 = q_0^1, \mode_0^2 = q_0^2, \linebreak[1] \ldots, \mathsf{sync}_0^l,
\ldots, \mode_k^1 = q_k^1, \mode_k^2 = q_k^2, \ldots\}$,
defining the modes of each automaton at each step and the
synchronization labels of each transition.  If the current run
represented by the SAT solver's trail cannot be extended, then
$\mathsf{genRun}()$ returns a ``$\mi{nil}$'' run.  Lines
\ref{alg:hnsolve:beginclause} - \ref{alg:hnsolve:endclause} create a
conflict clause from the decision variables on the SAT solver's trail
(i.e., negate the corresponding literals) and assert the new clause.
The $\mathsf{assertClause}()$ method returns $\mi{unsat}$ when the SAT solver determines
the new clause causes unsatisfiability; otherwise, the SAT solver will
backtrack as part of $\mathsf{assertClause}()$ and we will find a new run on line
\ref{alg:hnsolve:getpath}.

Upon finding a non-$\mi{nil}$ run, lines \ref{alg:hnsolve:beginassert} -
\ref{alg:hnsolve:endassert} assert each literal in the
run from the beginning of the run to the end (i.e., following a run
forward to one of the goal modes of each automaton). After
successfully asserting each literal on the run, {\tt HNSolve}\xspace asserts the
$\mi{nil}$ literal, which signals the SAT solver to complete any remaining
assignments.
 If the run leads to
a \ensuremath{\delta}-\ensuremath{\mi{sat}}\xspace solution, then the algorithm returns; otherwise, if
asserting a literal is not consistent (i.e., returns {\it backtrack} or
$\mi{unsat}$), then the solver attempts to find a new
run on line \ref{alg:hnsolve:getpath}.

\begin{algorithm}[t]
 \SetAlFnt{\tiny}
 \SetAlCapFnt{\small}
 \SetAlCapNameFnt{\small}
\SetAlgoLined
\SetKwFunction{HNSolve}{HNSolve}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
\HNSolve{${\cal N}$, $G$, $k$, $M$}\\
\Input{A network of automata ${\cal N}$, a reachability property $G$, and
  step and delay bound $k$ and $M$.}
$cost \leftarrow {\tt getRunCosts}({\cal N})$\;\label{alg:hnsolve:cost}
$\mathsf{encodeSMT}$(${\cal N}$, $G$, $k$, $M$)\;\label{alg:hnsolve:encode}
\While{true}{
\Repeat {$|{\cal P}| \neq \mi{nil}$}{ \label{alg:hnsolve:beginpath}
${\cal P} \leftarrow \mathsf{genRun}({\cal N}, \mathsf{getTrail}(), cost, k)$\;\label{alg:hnsolve:getpath}
 \If{${\cal P} = \mi{nil}$}{
   $C \leftarrow \bigvee_{l \in \mathsf{decisions}(\mathsf{getTrail}())} \neg l$\;\label{alg:hnsolve:beginclause}
   $\mi{res} \leftarrow \mathsf{assertClause}$($C$)\;
   \If{$\mi{res} = \mi{unsat}$}{
     \Return{$\mi{unsat}$}
   }\label{alg:hnsolve:endclause}
 }
}\label{alg:hnsolve:endpath}
 \For{$l$ from 0 upto $|{\cal P}|$}{\label{alg:hnsolve:beginassert}
\uIf{$l < |{\cal P}|$}{
   $\mi{res} \leftarrow \mathsf{assertLit}({\cal P}[l])$\;
}
\Else{$\mi{res} \leftarrow \mathsf{assertLit}(\mi{nil})$\;
}
   \uIf{$\mi{res}$ = \ensuremath{\delta}-\ensuremath{\mi{sat}}\xspace}{
     \Return{\ensuremath{\delta}-\ensuremath{\mi{sat}}\xspace}\;
   }
\ElseIf{$\mi{res} \neq \mi{consistent}$}{
     break\;
   }
}
\label{alg:hnsolve:endassert}
}
\caption{HNSolve algorithm. \label{alg:hnsolve}}
\end{algorithm}

\begin{algorithm}[t]
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
$\mathsf{genRun}({\cal N}$, $T$, $cost$, $k$)\\
\Input{A network of automata ${\cal N}$, a stack of literals $T$, a
  cost function $cost$, and
  the step bound $k$.}
${\cal P} \leftarrow []$\;
$S \leftarrow $ dfs(${\cal N}$, $[]$, $cost$, $k$)\;
\eIf{$S$ = fail}{
  {\bf return} nil\;
}{
\For{$j = 0 \ldots |S|-1$}{
  $(q_i \xrightarrow{\ell_i} q_i') \leftarrow S$.get($j$)\;
  $step \leftarrow j/|{\cal N}|$\;
  ${\cal P}$.append(($\mathsf{mode}_{step}^i = q_i'$, $\top$))\;
  \For{$l \in \ell$}{
    ${\cal P}$.append(($\mathsf{sync}_{step}^l$, $\top$))\;
}
}
}
{\bf return} ${\cal P}$\;
\caption{$\mathsf{genRun}$ algorithm. \label{alg:genRun}}
\end{algorithm}

\begin{algorithm}[t]
\SetKwFunction{dfs}{dfs}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
dfs(${\cal N}$, $S$, $cost$, $k$)\\
\Input{A network of automata ${\cal N}$, a search stack $S$, a mode
  cost function $cost$, and a
  step bound $k$.}
\If{$|S| = |{\cal N}|(k+1)$}{
  {\bf return} $S$\;
  }
$step \leftarrow |S|/ |{\cal N}|$\;
$i \leftarrow |S|\% |{\cal N}|$\;
$succ \leftarrow \{\}$\;
\eIf{$step$ = 0}{
  \For{$\mathsf{init}_{q'}(\vec x) \in \mathsf{init}_i$}{
    $succ \leftarrow succ \; \cup (nil \xrightarrow{\{\}}{q'})$\;
  }
}{
  $(q'' \xrightarrow{\ell'} q) \leftarrow S.$get($|S|-|{\cal N}|$)\;
  \For{$\mathsf{jump}_{q\xrightarrow{L}q'}(\vec x^t, \vec x^0) \in \mathsf{jump}_i$}{
    $succ \leftarrow succ \; \cup (q \xrightarrow{\ell}{q'})$\;
  }
$succ \leftarrow succ \cup (q \xrightarrow{\{\}}{q})$\;
}
$succ \leftarrow $sort(filter($succ$, $i$, ${\cal N}$, $S$, $step$), $cost$)\;
\For{$q\xrightarrow{\ell}{q'} \in succ$}{
  $S$.push($q \xrightarrow{\ell}{q'}$)\;
  \eIf{dfs(${\cal N}$, $S$, $k$) $\not=$ fail}{
    {\bf return} $S$\;
  }{
    $S$.pop()\;
  }
}
  {\bf return} fail\;
\caption{Depth-First Search Algorithm. \label{alg:dfs}}
\end{algorithm}

\begin{algorithm}[t]
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
filter($succ$, $i$, ${\cal N}$, $S$, $step$)\\
\Input{A set of transitions $succ$, an index of the current automaton
  $i$, a network of automata ${\cal N}$, a search stack $S$, and the
  current time step $step$.}
$succ' \leftarrow \{\}$\;
$siblings \leftarrow \{\}$\;
\For{$j = 0 \ldots |S|\%|{\cal N}|$}{
  $siblings \leftarrow siblings \cup  S$.get($|{\cal S}|-(i-j)$)\;
}
\For{$(q_i \xrightarrow{\ell_i} q_i') \in succ$}{

  \If{$T$.contains($mode_{step}^i = q_i'$, $\perp$) {\bf or} \\
    \quad $\exists l \in \ell_i .\;  T$.contains($sync_{step}^l$,
    $\perp$)
  }{
    {\bf continue}\;
  }

  $syncs \leftarrow \top$\;
  \For{$ (q_j \xrightarrow{\ell_j} q_j')  \in siblings$}{
    \If{($\ell_j = \{\}$ {\bf and} $q_j = q_j'$ {\bf and} ${\sf L}_i
      \cap {\sf L}_j \cap \ell_i \not= \{\}$) {\bf or }\\
      \quad ($\ell_i = \{\}$ {\bf and} $q_i = q_i'$ {\bf and} ${\sf L}_i
      \cap {\sf L}_j \cap \ell_j \not= \{\}$) {\bf or}\\
      \quad (${\sf L}_i \cap {\sf L}_j \cap \ell_i \not= {\sf L}_i \cap {\sf L}_j
      \cap \ell_j$)}{
      $syncs \leftarrow \perp$\;
      {\bf break}\;
    }
  }
  \If{$syncs$}{
    $succ' \leftarrow succ' \cup (q_i \xrightarrow{\ell_i} q_i')$
  }
}
{\bf return} $succ'$\;
\caption{Filter algorithm. \label{alg:filter}}
\end{algorithm}

The $\mathsf{genRun}()$ method (Algorithm~\ref{alg:genRun}) finds a
run on the network that is consistent with the current SAT solver
assignment $T$. It uses depth-first search (line 3 and Algorithm~\ref{alg:dfs}) to find a search
stack $S$.  The search stack $S$ includes a transition for each
automaton for each step 0 to k-1.  From $S$, the $\mathsf{genRun}$ method extracts the literals
needed to encode the run (lines 7-14).  The literals include mode
choices (line 10) and synchronization labels (lines 11-13).

The depth-first search (Algorithm~\ref{alg:dfs}) generates the search stack $S$
corresponding to a run on the network.  It selects an initial mode of
$H_1$ at depth 0, an initial mode of $H_2$ at depth 1, and so on.  It
selects a jump from the initial mode of $H_1$ (chosen at depth
0) at depth $|{\cal N}|$, a jump for $H_2$ at depth $|{\cal N}|+1$,
and so on.  Thus, the first ${\cal N}$ levels of the stack correspond
to initial modes, the second $|{\cal N}|$ levels to the zeroth step, and
similarly for later steps.  Lines 8-18
generate the successors, line 19 filters the successors (described below), and lines
20-27 conduct the recursive step of the search.

Algorithm~\ref{alg:filter} removes successors that are either
inconsistent with the SAT solver's current assignment (lines 8-9) or
do not synchronize with the ``sibling'' jumps previously chosen for the current
step (lines 13-20). The synchronization check involves three cases.
The first and second case are for when either the current automaton or
the sibling will persist its mode (i.e., not synchronize).  We require
that for a mode $q_i$ to persist in automaton ${\cal H}_i$, the
automaton must not be compelled to synchronize with its
siblings at the current time step.  More formally, the mode persistence is allowed if
the public labels ${\sf L}_j \cap \ell_j$ for each  chosen sibling jump $q_j
\xrightarrow{\ell_j} q_j'$ do not intersect with the labels ${\sf
  L}_i$.  The third case checks that two jumps agree on publicly
communicated labels.  The jumps in $succ'$ are those that are possible
in the discrete sense, but may not be possible if we were to consider
their continuous variables in the guards, updates, or mode invariants.

After filtering the possible successors, the depth-first search will
sort the jumps by increasing cost, where cost is defined by the
successor mode's value in $cost$.  The
cost of each mode is defined by the minimum number of steps from an
initial mode:

\begin{align*}
cost(q) = \left\{
\begin{array}{ll}
0 & : \mathsf{init}_q(\vec x) \in \mathsf{init}_i\\
\min\limits_{\mathsf{jump}_{q' \xrightarrow{\ell} q} \in \mathsf{jump}_i} cost(q') + 1 &: \text{otherwise}
\end{array}\right.
\end{align*}

In the next section, we detail the $\mathcal{L}_{\mathbb{R}_{\mathcal{F}}}$ encoding that we use to express
the network HA reachability problem.  We follow with a section
describing  how we experiment with {\tt HNSolve}\xspace\ by omitting it
entirely (i.e., use dReal alone), omitting lines 6-12 of Algorithm~\ref{alg:hnsolve} to avoid
learning conflict clauses, or using it in its entirety.  We note that
omitting conflict clauses results in an algorithm similar to that
described by Bryce \textit{et al.}\xspace \cite{DBLP:conf/aaai/BryceGMG15}, aside from our generalization
to a network of automata.

\section{Network Encoding} \label{sec:otf}

We encode the parallel
composition of a network of hybrid automata implicitly, as follows.
We encode the mode at step $i$ of each automaton with literals of
  the form $\mode_i^1 = q_1, \ldots, \mode_i^m = q_m$. We constrain the possible composite jumps with
 synchronized jump constraints, and noops.  With these constraints,
 we avoid pre-computing all possible $O(2^{|\mathsf{jump}|})$
parallel jumps per step. Instead, we encode $O(|\mathsf{jump}|m)$ synchronized
jump constraints and $O(|Q|m)$ noops.
To determine which jumps must synchronize, we
introduce literals for each label and constrain their values with the
appropriate jumps.  Noop (stutter) clauses encode cases where an automaton does not synchronize any
of its transitions, and its mode persists.

\medskip

We define the implicit parallel composition for a $k$-step $M$-delay
reachability problem as the conjunction of clauses describing each
individual automaton, and the goal:

\begin{align*}
& \exists^X \vec x^0_0\,  \exists^X\vec x_0^t\ldots \exists^X \vec
x^0_k\, \exists^X\vec x_k^t\\
& \exists^{[0,M]}t_0\ldots \exists^{[0,M]}t_k

.
\\
&
\left(\bigwedge_{j = 1}^n \mathsf{autom}(H_j, k)\right)
  \wedge \mathsf{goal}(\vec x^t_k) \wedge \left(\bigwedge_{i=0}^{k-1}
  \bigvee_{l\in {\sf L}_1 \cup \ldots \cup {\sf L}_n} \mathsf{sync}_i^l \right)
\end{align*}
The $\vec x_i^0$ and $\vec x_i^t$ variables denote the values of
continuous variables at the start and end of step $i$.  The $t_i$
variables denote the duration of step $i$.  The encoding ensures that
each automaton behaves appropriately, the goal is satisfied, and at least one non-noop transition occurs in each step.

The $\mathsf{autom}(H_j, k)$ clauses define
the behavior of each automaton $H_j$ as:
\begin{align*}
&\hspace*{-1cm}\mathsf{init}_{j}(\vec x^0_0) \wedge \bigwedge_{i=0}^{k}
\mathsf{maintain}_j(i) \wedge  \\
\bigg{[} \bigwedge_{i=0}^{k-1} & \left(\bigvee_{q\in Q_j} \mathsf{noop}(q,
    i)\right)\vee \\
&\bigvee_{\substack{\mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x_{i}^{t},
\vec x^{0}_{i+1}) \in \mathsf{jump}_j}}\mathsf{trans}_j(\mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x_{i}^{t},
\vec x^{0}_{i+1}), i) \bigg{]}
\end{align*}
which constrain the initial state, the continuous change in each mode
at each step, and the transitions between steps.

The clause $\mathsf{init}_{j}(\vec x^0_0)$ constrains the initial values of the
variables and the initial mode.  It defines:
\begin{align*}
\bigvee_{\mathsf{init}_q(\vec x)\in \mathsf{init}_j}
\mathsf{init}_{q}(\vec x^0_0) \wedge (\mode_0^j = q)
\end{align*}
to constrain the assignments to $\vec x_0^0$ and the initial mode.

The $\mathsf{maintain}_j(i) $
clause defines how the flows and invariants
of the automaton $H_j$ govern continuous change:
\begin{align*}
&\mathsf{flow}_j(\vec x^0_i, \vec x_i^t, t_i) \, \wedge\\
&\forall^{[0,t_i]}t\ \forall^X\vec x_{i}\;(\mathsf{flow}_j(\vec
x^0_i, \vec x_i, t) \rightarrow \mathsf{inv}_j(\vec x_i))
\end{align*}
where we note that the nested universal quantifiers ensure
that the invariant holds for the entire time the mode is occupied.
The nested quantifiers are a unique aspect of our encoding that
enables us to reason about nonlinear change \cite{gao2013satisfiability}.

The $\mathsf{flow}_j(\vec
x^0_{i}, \vec x_{i}^t, t_i)$ clause defines
\begin{align*}
\bigwedge_{q \in Q_j} (\mathsf{mode}_i^j = q) \rightarrow \mathsf{flow}_q(\vec
x^0_{i}, \vec x_{i}^t, t_i)
\end{align*}
The $\mathsf{inv}_j(\vec x_{i}) $ clause enables the invariants of
the active modes by defining:
\begin{align*}
\bigwedge_{q \in Q_j} (\mode_i^j = q)  \rightarrow
\mathsf{inv}_{q}(\vec x_{i})
\end{align*}

Noop clauses $\mathsf{noop}(q, i)$ model asynchronous behavior where
the automaton  does not synchronize, and define:
\begin{align*}
\left(\bigwedge_{l \in {\sf L}_j} \neg \mathsf{sync}^l_i\right)  \wedge
  (\mode_i^j = q) \wedge  (\mode_{i+1}^j = q)
\end{align*}

Jump transition clauses $\mathsf{trans}_j(\mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x_{i}^{t},
\vec x^{0}_{i+1}), i)$ define how each jump
must synchronize and constrain the variables and
modes:

\begin{align*}
&\left(\bigwedge_{l \in \ell\cap {\sf L}_j} \mathsf{sync}^l_i \wedge \bigwedge_{l \in {\sf L}_j
  \backslash \ell}  \neg  \mathsf{sync}^l_i \right)  \wedge \mathsf{jump}_{q\xrightarrow{\ell} q'}(\vec x_{i}^{t},
\vec x^{0}_{i+1}) \, \wedge\\
&(\mode_i^j = q) \wedge (\mode_{i+1}^j = q')
\end{align*}

 \input{exp}

\input{related}

\section{Conclusion}
We have described a new specialization of the dReal\xspace\ SMT solver
called {\tt HNSolve}\xspace\ and an associated network of hybrid automata
encoding.  The combination of {\tt HNSolve}\xspace\ and the network encoding helps
find PDDL+ plans as the number of encoding steps increases, especially
with the use of a two-step lock encoding.
 We have shown that the
approach scales up reasoning about PDDL+ planning and
that it is competitive with the state of the art.

\ifblind
\else
\paragraph{Acknowledgements} This work was supported under ONR
contract N00014-13-1-0090.
\fi

\clearpage

\section{Related Work}

While PDDL+~\cite{fox2006modelling} has been an accepted language for planning with continuous
change for nearly a decade, very few planners have been able to
handle its expressivity.   Planners either
assume that all continuous change is linear
\cite{DBLP:journals/ai/ShinD05,DBLP:conf/aips/ColesC14,DBLP:conf/aaai/BogomolovMPW14,coles2012colin}
or handle nonlinear change by discretization
\cite{della2009upmurphi}.

LP-SAT \cite{DBLP:journals/ai/ShinD05} is very similar in spirit to our work
because it uses a SAT solver to solve Boolean constraints and an LP
solver to solve continuous (linear) constraints.  The nature of the
encodings is somewhat different in that our encoding makes use of the
hybrid system semantics of PDDL+ in a very direct fashion.  LP-SAT
more closely resembles classical planning as SAT encodings.  Unlike
our work, LP-SAT
does not incorporate heuristics.

More recent work \cite{brycehp16,cashmore} has extended the LP-SAT
approach by adapting its encoding for use in contemporary SMT solvers,
including dReal and Z3 \cite{Moura2008}.  Unlike our work on {\tt HNSolve}\xspace,
these works focus solely on planning and not model checking hybrid
systems.  The advantage of focussing on planning encodings is that it
is easier to implement the ``must'' semantics of PDDL+ and adapt
existing techniques for SAT-based planning. Nevertheless, not all
problems are best phrased as PDDL+, and approaches for reasoning about
hybrid systems are necessary.

Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14}
 and
Della Penna \textit{et al.}\xspace \cite{della2009upmurphi}, like our work, make use of
the planning as model checking paradigm.  Unlike our work,
Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14}  encode a network of linear
hybrid automata and we can handle nonlinear automata.
Bogomolov \textit{et al.}\xspace \cite{DBLP:conf/aaai/BogomolovMPW14} use the SpaceEx model
checker \cite{frehse_spaceexb:_2011}, which performs a symbolic search
over the hybrid automata.

Coles \textit{et al.}\xspace \cite{DBLP:conf/aips/ColesC14}
 and \cite{coles2012colin} approach PDDL+ from the perspective
of heuristic state space search. Coles \textit{et al.}\xspace  \cite{DBLP:conf/aips/ColesC14}
exploit piecewise linear representations of continuous change to
derive powerful pruning conditions for forward heuristic search.

redpajama_set_name: RedPajamaArXiv


text:
Closing the Leap Gap
March 3, 2021 | By: Gerald Pfeifer
Tim Irnich, Developer Community Architect at SUSE, coauthored this post.
Today the openSUSE project announced the start of the public beta phase for openSUSE Leap 15.3. This release is an important milestone for openSUSE and SUSE, our users and customers: Leap 15.3 is the first release where openSUSE Leap and SUSE Linux Enterprise share the same source code and use the exact same binary packages. Let's have a look at the following picture to examine what this means in detail.
In most cases, software packages in openSUSE or SUSE Linux Enterprise distributions originate from the openSUSE Factory Project. They are used to produce various distributions such as Tumbleweed, Leap, Kubic – to name a few. Factory is constantly updated with the flow of changes released by the various upstream open source projects. Leap is openSUSE's stable release series. It feeds from the Factory "code stream" via two different paths. On the one hand, a subset of Factory is the source SUSE uses to create the SUSE Linux Enterprise products. From Leap 15.3 onwards, SUSE also (in addition to the sources) contributes the SUSE Linux Enterprise (SLE) binary packages back to the openSUSE community, where they form the base of openSUSE Leap. The openSUSE community continues to build the other Leap packages, now called "Backports," from the latest Factory sources. The combination of the SLE binaries, openSUSE Backports, and a thin layer of branding and configuration will make up openSUSE Leap 15.3 and its successors. The openSUSE Backports also populate SUSE Package Hub, which offers SUSE's customers the same choice of thousands of community-supported packages on top of the baseline SLE product and SUSE's enterprise-grade support.
We won't go into details on how this works under the hood in this post. If that's what you're looking for, see our blog series on How SUSE Builds its Enterprise Linux Distribution. Today, we will focus on what this change means for you as an end user. In a nutshell, while portability (i.e. the ability to run software built for openSUSE Leap on SLE or vice versa) between SLE and Leap was previously very likely, it is now almost guaranteed. You can migrate from openSUSE Leap to SUSE Linux Enterprise without having to reinstall anything, and this is a big deal. Let's take a look at a couple of examples.
Why Should I Bother?
Imagine you're building software to run on SUSE Linux Enterprise. You need to test this as well as you can. You will most likely apply a tiered approach in your test pipeline. Early on, one key question is: does my software build, install, and function properly on my target platform? Testing this in an automated way requires you to spin up a new (probably virtual) machine, install the target OS, build and deploy your software and test it. It is essential to minimize the time all that takes since the number of test iterations per day is the ultimate limit to your feature velocity. Doing this with SLE requires you to register the newly installed OS at every iteration, which is a bit tricky to automate and, more importantly, takes quite some time to complete. Wouldn't it be great if there was a way to skip the registration step while getting equally meaningful test results? With 15.3, you can simply use openSUSE Leap as an equivalent replacement for SLE 15 SP3 in this stage of your test pipeline. It also removes any limitations on the number of parallel test instances. You can run as many boxes as you like at no cost.
Another example is the typical "cattle" infrastructure developers and engineers depend on to do their work. Quickly spinning up a virtual machine on the developer workstation or in the cloud or building an experimental container has become the bread and butter for all the techies and nerds worldwide. Anything that constrains their ability to do so is a severe limitation to productivity and innovation. This is why free Linux distros are so popular among developers for prototyping and experimentation. However, using one Linux distro for prototyping and another non-compatible one in production sets you up for trouble — you are pushing detection of integration issues to a later time. And we all know that the later a problem is identified, the more costly it is to fix. With Leap 15.3, you get a free Linux distribution that is essentially identical to SUSE's commercial Enterprise Linux. It's also available without any constraints as to how many CPUs you can run, how many VMs you can host, how long you can keep things running and other constraints often found with free tiers of enterprise-grade products. Plus, you can migrate your existing server, VM or container over to SUSE Linux Enterprise within minutes if you need to "turn on" enterprise support at a later time.
The bottom line is: openSUSE Leap is a strong alternative for anyone interested in SLE, but for some reason requires a no-cost option or needs to avoid the technical complexity of registration.
Yet another benefit of this move is that in-place migration between Leap and SLE is really easy. As a colleague said: "While it was previously comparable to a long coffee, it now resembles an espresso shot."
The procedure is described in detail here. In a nutshell, the steps are:
Install the migration tools: sudo zypper in yast2-registration rollback-helper
Enable the rollback service: sudo systemctl enable rollback
Register the machine: sudo yast2 registration
Run the actual migration: sudo yast2 migration
Reboot the system: sudo reboot
Easy, right? Let us know if the procedure finished before you were back at your keyboard with your freshly brewed espresso.
Also, thanks to the magic of Btrfs and snapper, you can always roll back to your previous system state. Herein, the rollback helper makes sure that your local system's state is kept in sync with your registered systems in SCC since you might end up with stale registrations otherwise.
Don't Forget the Power of Many
The combination of enterprise quality and "The Power of Many" in the openSUSE community brings a couple of additional treats.
A community distribution that is binary compatible with an Enterprise Linux distribution offers unmatched choice. openSUSE Leap not only provides the same quality as SLE. It also combines that with the amazing ecosystem of openSUSE, which offers thousands of additional community-maintained software packages. Previously you had to choose between super rock solid (we do need to stress that Leap was, of course, also very solid already) and large choice of software packages, but no more. You can have both at the same time now.
In addition, SUSE and the openSUSE community have created a way to allow code submits against the SLE code base itself. So, if you, as an openSUSE Leap user, run into a problem that's rooted in one of the packages inherited from SLE, you can influence both openSUSE Leap as well as SUSE Linux Enterprise at the same time. Think of it as openSUSE users as the most important business partner for SLE.
Sound Too Good to be True?
Combining packages built in two different build pipelines into one distribution is by no means easy. At the beginning, the community faced around 150 packages that needed to be forked and rebuilt from source in the openSUSE build service due to various reasons. In a near-heroic effort, until the time of this writing, the community brought this down to 7 packages that are not binary identical. They behave the same way but have a different checksum than their SLE counterparts. We expect to reduce this further over time; you can find the list of SLE packages rebuilt for Leap here.
How and When Can I Get It?
The code submission deadline (i.e. the point in time where all package repositories are frozen except for bugfixes) for SLE 15 SP3 as well as openSUSE Leap 15.3. was on Feb 17, 2021, at 14:00 UTC. The first beta build has been published on March 3rd. The timeline of events leading up to the official release is described on the openSUSE Roadmap.
If you want to participate in the public beta, visit https://get.opensuse.org/testing, which will be updated with all relevant information.
If you run into problems with the beta, the best place to turn to is the openSUSE Factory mailing, to which you can subscribe here. And, since bug reports are the point of a public beta, you can file them here. There's a list of typical beta test procedures in case you need some inspiration on how to check if everything works fine. If you need help filing a bug report, check this page or contact us on the openSUSE Forums.
The official release of Leap 15.3 is planned for June 2021. Mark your calendars — we'll throw a big party (maybe).
Gerald PfeiferDr. Gerald Pfeifer is CTO at SUSE and chair of the board of the openSUSE project. Previously vice president of Products at SUSE, he has been contributing to open source before that term was coined and enjoys building bridges between business, technology and communities.


B: I used to think I was from the "Big city" growing up. Then I went to Beijing and realized how small my hometown really is!
B: Yeah, Columbus may not be as big and exciting as Beijing, but there're still tons to do!
M: "It seems like she's happy, but whenever I bring up our future she always changes the subject. I just bought her this diamond necklace and she told me she loved me, but then she said she's busy this weekend. Do you think she's just "STRINGING ME ALONG?"
M: "I love getting all these free lunches and baseball tickets from this salesman. He really thinks I'm going to buy his computer system. I think I might STRING HIM ALONG just a little longer, so I can get tickets to the playoffs─then I'll say we've changed our mind."
M: "I think Will' father PULLED A FEW STRINGS to get him in here. Do you know his father' an old friend of the college President? It' so unfair. I mean Will' a nice guy, but he should have to work to get in like everybody else."
M: It doesn't surprise me at all. I'm sure he knows more than a few politicians. All he had to do was PULL SOME STRINGS and he got special treatment. That's the way it works.
B: Well, I don't see what the big deal here is. I pulled some stings to find this job and look how well it has worked out! You got a great co-worker and I get to live in the big city!
A: (sarcastically) Great co-worker huh? Yeah 80% of the time I'm really glad you are my co-worker, the other 20%... (both laugh) 言归正传, So what's your favorite part of living in the city?
B: (thinking while answering) the museums, the cultural events, and…oh oh, all the ethnic food! It's like being able to go on an around-the-world vacation without the expensive plane ticket!
J: I'd like you to meet Henry Johnson. Mr. Johnson has been working at our Beijing office for over a year now. I think you two are from the same city.
P: Brooklyn...that's a great neighborhood. I'm originally from Queens but moved down to Manhattan a while back. So...you're an expat in China...how's life over here working out for you?
H: You know---I really love it. There are frustrations of course, such as traffic, pollution and the language barrier, but all in all, I give China a big thumbs up.
J: Before you two get carried away in conversation let's finalize our plans for the evening. I was thinking of dining at a well-known dumpling restaurant and then hitting a Karaoke bar for some fun!
P: Everything sounded good until I heard the word "Karaoke." If there's one thing you don't want to hear, it's me singing.
H: (Chuckle) I sound like a frog that's suffering from a bad cold! But Karaoke is so popular in Asia that I've been dragged to at least two dozen of them so far. I've even learned a Chinese song or two.
J: Hey...no Karaoke...no problem! We're here to have fun and if singing isn't fun...then forget it! I assume you like beer.
H: Chinese beer is actually pretty good. I've sampled all of them so I should know!
J: Great! So we'll have dinner and then we'll go down to the bar district. In Beijing there are literally thousands of bars.
B: Right...the crime rate in big cities is usually a lot higher. Which just so happens to be what Pete and Henry are talking about, let's see what they have to say!
J: You two gentlemen wait here for a second and I'll go make reservations and pick up the car.
H: Alright. So Pete...first time in China?
P: Second. The first time we spent the whole visit at the factory in Guangzhou. Beijing is good...I like it.
H: Yeah, I'm not so fond of Guangzhou. Too crowded and hot. Beijing is more like New York, I guess.
H: Yeah...but you know...for having that many people, the city seems to flow quite well.
H: It's reasonably low. Beijing has crime, of course, but compared to most other places...it's very safe. You could take a stroll at two o'clock in the morning without worrying.
P: Really! That's pretty amazing. You think it's safer here than back home?
H: Actually, yes. Last time I was in Baltimore...I saw a mugging happen less than 10 feet away from me. One night I could hear gunshots from my hotel room!
P: New York has gotten a lot better over the last 10 years or so. These days I feel pretty safe if I know the neighborhood. But you're right---many places in the States are crazy.
H: Right. Only once in a blue moon do we hear stories of foreigners becoming victims of crime. It's likely the worst thing that could happen to you is you lose your wallet to a pickpocket. Oh, Jack is back, Hungry?
P: Starving! Let's go eat!


text:
<?php

require_once 'Sitengine/View.php';

abstract class Sitengine_Permiso_Frontend_User_ViewHelper extends Sitengine_View {

    protected $_controller = null;
    protected $_queries = array();
    protected $_settings = array();
    protected $_sections = array();

    public function __construct(array $config)
    {
    	if(isset($config['controller']) && $config['controller'] instanceof Sitengine_Permiso_Frontend_User_Controller)
    	{
    		$this->_controller = $config['controller'];
    	}
    	else {
    		require_once 'Sitengine/Exception.php';
        	throw new Sitengine_Exception('construct error');
    	}
    }

    public function setSection($name, array $data)
    {
        $this->_sections[$name] = $data;
    }

    public function getSections()
    {
        return $this->_sections;
    }

    public function getSettings()
    {
        return $this->_settings;
    }

    public function getQueries()
    {
        return $this->_queries;
    }

    public function build()
    {
    	try {
    		/*
			if($this->_controller->getEnv()->getDebugControl()) {
				require_once 'Sitengine/Debug/Sections.php';
				$this->setSection(
					'DBG',
					Sitengine_Debug_Sections::getForm(
						$this->_controller->getRequest(),
						$this->_controller->getPreferences()->getDebugMode(),
						array('queries' => 'Queries', 'templateData' => 'Template Data')
					)
				);
			}

			require_once 'Sitengine/Env/Preferences/Sections.php';

			if(sizeof($this->_controller->getTranslate()->getAvailableLanguages()) > 1) {
				$this->setSection(
					'LANGUAGE',
					Sitengine_Env_Preferences_Sections::getLanguageForm(
						$this->_controller->getPreferences()->getLanguage(),
						$this->_controller->getTranslate()->getAvailableLanguages(),
						$this->_controller->getTranslate()->translateGroup('loclangs')->toArray()
					)
				);
			}

			$this->setSection(
				'TIMEZONE',
				Sitengine_Env_Preferences_Sections::getTimezoneForm(
					$this->_controller->getPreferences()->getTimezone(),
					$this->_controller->getEnv()->getTimezones()
				)
			);
			*/
			return $this;
		}
		catch (Exception $exception) {
        	require_once 'Sitengine/Permiso/Frontend/User/Exception.php';
        	throw new Sitengine_Permiso_Frontend_User_Exception('build page error', $exception);
        }
    }

}

?>

redpajama_set_name: RedPajamaGithub


text:
Barossa FEED contracts awarded
LNG Industry, Tuesday, 03 July 2018 09:44
ConocoPhillips Australia, as operator of the Barossa joint venture, has awarded three major engineering contracts for the front-end engineering design (FEED) phase on the Barossa offshore project.
Barossa is an offshore gas and light condensate project that proposes to provide a new source of gas to the existing Darwin LNG (DLNG) facility, subject to suitable commercial arrangements being put in place. The offshore development concept includes a floating production storage and offloading (FPSO) facility, subsea production system, and gas export pipeline, located in Commonwealth waters 300 km north of Darwin. The existing DLNG infrastructure owners are assessing several options to backfill the facility from 2023 when the current offshore gas supply from Bayu-Undan is expected to be exhausted.
FEED for the FPSO facility will be conducted as a design competition between two contractor groups. Following an extensive bid process, separate FPSO FEED contracts have been awarded to MODEC and to a consortium between TechnipFMC and Samsung Heavy Industries. FEED for the subsea infrastructure (umbilicals, flowlines, and risers) and gas export pipeline has been awarded to INTECSEA.
ConocoPhillips Australia West President Chris Wilson said the award of the FEED contracts represents a significant step in positioning Barossa as a leading candidate to extend the life of the DLNG facility for another two decades.
"Conducting Barossa FPSO FEED as a design competition continues our focus on strong cost discipline, which enables Barossa to compete both in our global portfolio and as a leading candidate to backfill DLNG," Wilson said.
"Barossa is the first potential DLNG backfill project to progress into the FEED phase, positioning it strongly to secure access to the DLNG capacity following the end of production at Bayu-Undan. We look forward to working together with our selected FEED contractors to develop sufficient certainty of cost, schedule and execution planning to support a final investment decision (FID) at the end of 2019."
Barossa would meet future global demand for natural gas and contribute significant income, employment and other benefits to the Northern Territory and Australia through continued operation of the DLNG facility for a further 20 plus years.
The Industry Capability Network (ICN) has been engaged by ConocoPhillips to assist with Australian vendor identification for the Barossa Offshore Project.
Read the article online at: https://www.lngindustry.com/liquid-natural-gas/03072018/barossa-feed-contracts-awarded/
Australia LNG news LNG project news Offshore LNG news


text:
Glenn is sick of the GOP: "Let's find some people with spines"
After today, it's safe to say that Glenn has had more than enough of the Republican establishment. This morning on radio he reacted to the Obamacare ruling and the vote from George W. Bush appointed Chief Justice John Roberts.
"I'm tired of the conservative movement. I'm sick and tired of it. I am sick and tired of the Republican conservative movement," Glenn said this morning following the ruling on Obamacare.
Glenn recalled going to CPAC and rallying the crowd behind the problem of progressivism in both parties, while the "power players" in the Republican establishment continue to implement progressive policies when it is convenient for their party.
This is one of the reasons Glenn has partnered with FreedomWorks to organize FreePAC, a gathering of Tea Partiers and people who believe in small government from all around the globe in Dallas, TX this summer. The event occurs the same week of Restoring Love, and as Glenn made sure to point out, it won't be full of covert progressives.
"I'm sick and tired of it. They're cowards. They're all cowards," he continued. "They won't come out and tell you what they really are; they won't tell you what they really mean. They try to convince you that they're just like you."
The deciding vote in the Obamacare ruling was made by Bush appointed Chief Justice Roberts. Glenn has gotten heat from the right for referring to George W. Bush as a progressive in the past, but as Stu pointed out this morning, "This destroys Bush's legacy among conservatives."
One of the most shocking pieces of today's ruling is who wrote the decent on this case – Kennedy. Justice Kennedy wrote in the decent that "in our view, the entire act before us is invalid in its entirety."
"If Roberts voted the other way, the entire thing would have been thrown out," Stu said.
Pat pointed out that it's always the guys who look conservative that end up turning these votes. It never happens the other way.
"Let's find some people with some spines," Glenn responded. "Are you telling me out of 350 million people, we can't find nine?"
Glenn rejected the notion that these appointed Justices should not have a litmus test or should be right down the middle on the issues.
Stu agreed, and added that "the Constitution should win in Constitutional battles."
This shifted the conversation to what Romney's response will be, and more importantly, to the importance of he being the conservative he claims to be should he win in November. Glenn also reminded listeners how important it is that they are registered to vote, and that they get their friends registered to vote.
"Have you registered to vote yet?" Glenn asked the radio audience. "Have you done that? "Have you gone to mercuryone.org or FreePAC.org and registered?"
"I'm telling you, this is the freedom movement. I have met with these guys from Freedom Works over and over and over again. These guys are good. They are rock solid," Glenn said.
Earlier in the radio show Glenn said this of the healthcare ruling, "This is not a setback, this is a challenge. Believe me; the American people are up for a challenge." Glenn has been encouraging his audience that the time for action is now. If you want to make sure that we do not lose the reason America has always been exceptional, then you need to actively be part of a movement that draws a line in the sand around American hearts. Glenn and FreedomWorks are working hard to organize those who are playing an active role in restoring America - FreePAC and Restoring Love are big part of that.
Stop waiting on Republicans in Washington D.C. to make a difference. Join Glenn and FreedomWorks this summer in Dallas to Restore Freedom and Restore Love.
Watch the video clip below to hear Kim Iverson break it down and don' t miss tonight's special episode of "GlennTV" at 9:30ET on BlazeTV's YouTube channel.


Knight frank kings road office. Psicoterapia junguiana infantil. Cheapest litecoin mining rig. 3705 shawnee mission parkway. Linden furnell rent. Starlin castro catch . Hasenschule essen kosten. Saml token example . Lumberyard double ipa. Download film gengsi dong indowebster. I think were in the same doldrums the Japanese havebeen in since the 1990s. How much does it cost to have Mr. Scenic in the undeveloped parts. Charles spaniel with severe periodontal disease which had developed. Stuccoing exposed lintels and a stepped back roofline. Like fat loss and getting into shape process improvement is a discipline backed by many best practices. Ficha 12 Que desorden en el fregadero consta de cuatro vasos idnticos uno estar lleno del todo otro un poco menos lleno el siguiente menos y el ltimo casi vaco. Abdul Rahman ibni al-Marhum Yamtuan Muhammad Tuanku King b. La misma integrar activamente a la comunidad en la siembra de corales y en el monitoreo de corales restaurados de la RMTP. Restrained my feet from every evil way that I may keep your words Ps. They think that it cannot be Jessica. Until this code was issued 0486. Espce de limace Limax ater - TM. It argues government austerity has. Wagn Tails grooming conversion lineup now includes 4. And to the east of those beasts I saw the ends of the earth whereon. On the other hand there is usually a great vibe among the lift crew and you get to know the mountain really well. Land deserves all the credit. Refers to educational programs developed for entire families with the purpose of. Ho sentito parlare da un amico che lavora in una societ di un nuovo accumulatore di corrente a idrogeno che verr messo in commercio a breve. In Swahili kopa means to borrow which is the foundation of the Kenya-based solar power company M-Kopa. When they headed off to Chateau DHerouville outside Paris to begin work on. This brings empathy acceptance and helps you to adopt to change without stress. Note Stream 1 can queue 127 frames presumably plus 1 incomplete frame being. Outstanding Teaching at BTEC Applied Science Level 3 8261. Corporale e quasi di ubbriachezza Pindaro ne pu essere un esempio ed anche. 1981 President and General Manager Atlanta Falcons. Calistoga CAShane Golobic of Fremont Calif. Barbie is a world wide know model and tonight she might be having the show of her life She needs to make sure that shell be shining on the stage like no other model. Tous ceux qui vont peut-tre m aider jai une maison familiale trs.